代码地址:https://github.com/MisterChegy/hibernate
1、工具类的创建
每次在获取 Session 时,都需要通过 Configuration 对象加载主配置文件与映射文件,并
且要创建 SessionFactory 对象,降低了开发与执行效率。所以,对于 Session 对象的获取,
可以创建一个工具类。
public class HbnUtils {
private static SessionFactory sessionfactory;
public static Session getSession(){
return getSessionFactory().getCurrentSession();
}
public static SessionFactory getSessionFactory(){
if(sessionfactory==null||sessionfactory.isClosed()){
sessionfactory=new Configuration().configure().buildSessionFactory();
}
return sessionfactory;
}
}
2、CURD 测试
在 上一个项目的基础上,再创建一个测试类 Test。在其中通过使用工具类 HbnUtil
来测试增、删、改,与简单查询操作。
public class HbnUtils {
private static SessionFactory sessionfactory;
public static Session getSession(){
return getSessionFactory().getCurrentSession();
}
public static SessionFactory getSessionFactory(){
if(sessionfactory==null||sessionfactory.isClosed()){
sessionfactory=new Configuration().configure().buildSessionFactory();
}
return sessionfactory;
}
}
// save
@Test
public void saveStudent() {
Student s1 = new Student();
s1.setSname("进行插入操作");
Session session = HbnUtils.getSession();
try {
session.beginTransaction();
session.save(s1);
System.out.println(s1.getSname());
session.getTransaction().commit();
} catch (Exception ex) {
ex.printStackTrace();
session.getTransaction().rollback();
}
System.out.println(s1.getSname());
}
// delete
@Test
public void deleteStudent() {
Student s1 = new Student();
s1.setSid(1);
Session session = HbnUtils.getSession();
try {
session.beginTransaction();
session.delete(s1);
session.getTransaction().commit();
} catch (Exception ex) {
ex.printStackTrace();
session.getTransaction().rollback();
}
System.out.println(s1.getSname());
}
// update
@Test
public void updateStudent() {
Student s1 = new Student();
s1.setSname("update");
s1.setSid(2);
Session session = HbnUtils.getSession();
try {
session.beginTransaction();
session.update(s1);
session.getTransaction().commit();
} catch (Exception ex) {
ex.printStackTrace();
session.getTransaction().rollback();
}
}
// load
@Test
public void loadStudent() {
Session session = HbnUtils.getSession();
try {
session.beginTransaction();
Student s1 = session.load(Student.class, 1);
System.out.println(s1.getSname() + s1.getSid());
session.getTransaction().commit();
} catch (Exception ex) {
ex.printStackTrace();
session.getTransaction().rollback();
}
}