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());
}
}
}
转载于:https://www.cnblogs.com/xxsc/p/4625150.html