hibernate对于数据的处理使用的都是session中的方法。Session中常用的方法包括:
一、save()方法,这个方法应该已经非常熟悉了,它能把对象又临时状态转变成持久化状态。
1.复制工程Hibernate04-02为Hibernate05-02,去掉用不到的Node类相关的代码。
2.修改StudentTest.java文件为:
package com.test.service;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.test.model.Class;
import com.test.model.Student;
import com.test.util.HibernateUtil;
public class StudentTest {
private SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); // 获取Session工厂
private Session session;
@Before
public void setUp() throws Exception {
session=sessionFactory.openSession(); // 生成一个session
session.beginTransaction(); // 开启事务
}
@After
public void tearDown() throws Exception {
session.getTransaction().commit(); // 提交事务
session.close(); // 关闭session
}
@Test
public void testClassAndStudentSave() {
Class c = new Class();
c.setName("08数学");
Student s1 = new Student();
s1.setName("张三");
s1.setC(c);
Student s2 = new Student();
s2.setName("李四");
s2.setC(c);
session.save(s1);
session.save(s2);
}
}
运行函数testClassAndStudentSave(),hibernate就会把c、s1、s2的数据保存到数据库中。这里虽然没有对c调用session.save方法,但是由于我们在Student类的映射文件中设置了级联保存,所以c的数据也会保存到数据库中。
二、load()方法VS get()方法
都是根据OID(对象标识符&