Hibernate 简单的CURD操作

一、单表操作 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.class1);
  15.     System.out.println(s);
  16. }
  17. @Test
  18. public void testLoadStudents() {
  19.     Student s = (Student) session.load(Student.class1);
  20.     System.out.println(s);
  21. }
  22. @Test
  23. public void testUpdateStudents() {
  24.     Student s = (Student) session.get(Student.class1);
  25.     s.setName("五柳先生");
  26.     session.update(s);
  27. }
  28. @Test
  29. public void testDeleteStudents() {
  30.     Student s = (Student) session.get(Student.class1);
  31.     session.delete(s);
  32. }

 

三、get 和 load 的区别

区别一、

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

区别二、

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

p





  • 微信
  • 赶快加我聊天吧
  • QQ
  • 相逢即是有缘
  • weinxin
三尾鱼

发表评论 取消回复

    • avatar KID 博主

      谢谢,太管用了

        • avatar KID
          回复 2018年12月24日 10:34:37   1层

          @ KID 先收藏了

          • avatar KID 博主
            回复 2018年12月24日 10:34:56   2层

            @ 1111 以后会用的着

          • avatar 你好

            非常好,学到了

              • avatar KID 博主
                回复 2018年11月25日 13:53:19   1层

                @ 你好 不错不错,很有用

                • avatar KID 博主
                  回复 2018年11月25日 13:58:18   2层

                  @ 你好 很有用

                  • avatar KID 博主
                    回复 2018年12月24日 10:35:13   3层

                    @ 你好 很好