注解用到的jar包:下载地址
/**
* ========================================================================* 注解
* 步骤:
* 1.导入jar包
* (1)hibernate-annotations.jar
* (2)hibernate-commons-annotations.jar
* (3)ejb3-persistence.jar
* 2.使用注解配置持久化类级对象关联关系
* 3.使用AnnotationConfiguration建立会话工厂
* sessionFaction=new AnnotationConfiguration().configure().buildSessionFactory();
* 4.在hibernate配置文件中(hibernate.cfg.xml)中生成持久化类
* <mapping class="持久化类完整限定名">
* ========================================================================
*
*/
@Test
public void test1(){
//必须先在数据库里面创建序列,名字是seq_emp_id
Session session=new AnnotationConfiguration()
.configure()
.buildSessionFactory()
.openSession();
Transaction tx=session.beginTransaction();
Emp1 emp1=new Emp1();
emp1.setEname("test2");
emp1.setHiredate(new Date());
session.save(emp1);
tx.commit();
}
//测试多对一的配置注解
@Test
public void test2(){
Session session=new AnnotationConfiguration()
.configure()
.buildSessionFactory()
.openSession();
Emp1 emp1=(Emp1) session.get(Emp1.class,7788);
System.out.println(emp1.getEname()+","+emp1.getDept().getDname());
}
//级联操作
@Test
public void test3(){
Session session=new AnnotationConfiguration()
.configure()
.buildSessionFactory()
.openSession();
Transaction tx=session.beginTransaction();
Dept1 dept1=new Dept1(1,"产品部");
Emp1 emp1=new Emp1();
emp1.setEname("Villy");
emp1.setHiredate(new Date());
dept1.getEmps().add(emp1);
emp1.setDept(dept1);
session.save(dept1);
tx.commit();
}