Hibernate 简单的CURD操作

文章封面
摘要: 一、单表操作 CURD 实例saveupdatedeleteget/load (查询单个记录) 二、代码实现StudentTest.java@Testpublic void&nbs

一、单表操作 CURD 实例

  • save
  • update
  • delete
  • get/load (查询单个记录)

二、代码实现

StudentTest.java

  1. @Test
  2. public void testSaveStudnets() {
  3. //生成学生对象
  4. Student s = new Student();
  5. s.setName("陶渊明");
  6. s.setSex(1);
  7. s.setBirthday(new Date());
  8. Address address = new Address("332000","13512345678","江西九江");
  9. s.setAddress(address);
  10. session.save(s);//保存对象进入数据库
  11. }
  12. @Test
  13. public void testGetStudents() {
  14. Student s = (Student) session.get(Student.class, 1);
  15. System.out.println(s);
  16. }
  17. @Test
  18. public void testLoadStudents() {
  19. Student s = (Student) session.load(Student.class, 1);
  20. System.out.println(s);
  21. }
  22. @Test
  23. public void testUpdateStudents() {
  24. Student s = (Student) session.get(Student.class, 1);
  25. s.setName("五柳先生");
  26. session.update(s);
  27. }
  28. @Test
  29. public void testDeleteStudents() {
  30. Student s = (Student) session.get(Student.class, 1);
  31. session.delete(s);
  32. }

三、get 和 load 的区别

区别一、

  • 不考虑缓存的情况下,get 方法会在调用之后,立即向数据库发送 sql 语句,返回持久化对象。
  • load 方法会在调用后返回一个持久化对象。该代理对象只保留了实体对象的 id,直到使用实体对象的非主键属性时才发出 sql 语句。

区别二、

  • 查询数据库中不存在的数据时,get 方法返回 null 。
  • load 方法返回异常 org.hibernate.ObjectNotFoundException

p

84 阅读 ← 返回技术栈
图片放大