ClassesTest

public class ClassesTest {
 private Session session;
 @Before
 public void getSession(){
  session = HibernateUtil.getSession();
 }
 @After
 public void getSessionClose(){
  session.clear();
  session.close();
 }
 @Test
 public void testdelete(){
  session.beginTransaction();
  //加载学生信息
  try {
   Student s= (Student) session.get(Student.class, 2);
   System.out.println("班级:"+s.getSname());
   //加载班级信息
   Classes c=(Classes) session.get(Classes.class, 1);
   //去除当前这个班级和学生的关联
   //关系要双向处理,因此删除的时候,也要双向删除
   s.setClasses(null);
   c.getStudents().remove(s);
   session.getTransaction().commit();
  } catch (HibernateException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
   session.getTransaction().rollback();
  }
 }
 @Test
 public void testSave4(){
  //因为加入了inverse属性,权利反转,由多的一端来负责处理各种关系
  //因此数据的insert 操作也是由多的一端来处理
  session.beginTransaction();
  //先有班级
  try{ Classes c= new Classes();
  c.setCname("86");
  session.save(c);
  for(int i= 0;i<=10;i++){
   Student s= new Student();
   s.setSname("撒"+i);
   //保存学生数据,此时学生的数据是持久化数据
   s.setClasses(c);
   session.save(s);
  }
  session.getTransaction().commit();
  
  }catch(HibernateException p){
   p.printStackTrace();
   session.getTransaction().rollback();
  }
 }
 @Test
 public void testInsert1(){
  session.beginTransaction();
  try {
   Classes c = new Classes();
   c.setCname("614");
   session.save(c);
   Student s  = new Student();
   s.setSname("张三");
   s.setClasses(c);
   session.save(s);
  } catch (HibernateException e) {
   e.printStackTrace();
   session.beginTransaction().rollback();
  }
  session.beginTransaction().commit();
 }
 /**
  * 批量插入
  */
 @Test
 public void testInsert2(){
  session.beginTransaction();
  try {
   for (int i = 0; i < 3; i++) {
    Classes c = new Classes();
    c.setCname(""+(600+i));
    session.save(c);
    for (int j = 0; j < 10; j++) {
     Student s  = new Student();
     s.setSname("张三"+i);
     s.setClasses(c);
     session.save(s);
    }
   }
  } catch (HibernateException e) {
   e.printStackTrace();
   session.beginTransaction().rollback();
  }
  session.beginTransaction().commit();
 }
 /**
  * 查询
  */
 @Test
 public void testQuery(){
  Student s = (Student)session.get(Student.class,2);
  System.out.println(s.getSname()+"==="+s.getClasses().getCname());
 }
 @Test
 public void testQuery2(){
  Classes c = (Classes)session.get(Classes.class,3);
  System.out.println(c);
  Set<Student> set  = c.getStudents();
  Iterator<Student> it = set.iterator();
  while(it.hasNext()){
   Student s = (Student)it.next();
   System.out.println(s.getSname());
  }
 }
}

posted @ 2015-07-06 19:17  水月洞天1  阅读(130)  评论(0编辑  收藏  举报