zl程序教程

您现在的位置是:首页 >  后端

当前栏目

hibernate注解的测试

2023-09-14 08:57:40 时间

注解用到的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();
	}