工具类
public class HbnUtil {
private static SessionFactory sessionFactory;
public static Session getSession() {
if(sessionFactory == null || sessionFactory.isClosed()) {
sessionFactory = new Configuration().configure().buildSessionFactory();
}
return sessionFactory.getCurrentSession();
}
}
CURD操作
save()
@Test
public void testSave() {
Student student = new Student("李四",24,94.5);
Session session = HbnUtil.getSession();
try {
session.beginTransaction();
//save()
session.save(student);
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}
}
persist():和save()一样
@Test
public void testPersist() {
Student student = new Student("王五",25,95.5);
Session session = HbnUtil.getSession();
try {
session.beginTransaction();
//persist()
session.persist(student);
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}
}
delete()
@Test
public void testDelete() {
Student student = new Student();
student.setId(1);
Session session = HbnUtil.getSession();
try {
session.beginTransaction();
//delete()
session.delete(student);
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}
}
update()
@Test
public void testUpdate() {
//设置要修改为的值
Student student = new Student("王五",25,95.5);
//设置要修改的对象的id
student.setId(2);
Session session = HbnUtil.getSession();
try {
session.beginTransaction();
//update()
session.update(student);
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}
}
saveOrUpdate()
通过参数对象是否具有id 值来判断是执行save()操作还是执行update()操作。若参数对象具有id,但该id 在DB 中不存在,则会抛出异常。
@Test
public void testsaveOrUpdate() {
//设置要修改为的值
Student student = new Student("赵六",26,96.5);
//设置要修改的对象的id
student.setId(3);
Session session = HbnUtil.getSession();
try {
session.beginTransaction();
//saveOrUpdate()
session.saveOrUpdate(student);
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}
}
get()
在查询无果时,会给出null,但不会抛出异常
@Test
public void testGet() {
Session session = HbnUtil.getSession();
try {
session.beginTransaction();
//get()
//Student student = session.get(Student.class,1);
//没有id为90的student,其查询结果为null,没有异常抛出
Student student = session.get(Student.class,90);
System.out.println(student);
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}
load()
在查询无果时,会抛出异常
@Test
public void testLoad() {
Session session = HbnUtil.getSession();
try {
session.beginTransaction();
//load()
//Student student = session.load(Student.class,1);
//没有id为90的student,抛出异常
Student student = session.load(Student.class,90);
System.out.println(student);
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}
}