Hibernate 简单的CURD操作
一、单表操作 CURD 实例
- save
- update
- delete
- get/load (查询单个记录)
二、代码实现
StudentTest.java
- @Test
- public void testSaveStudnets() {
- //生成学生对象
- Student s = new Student();
- s.setName("陶渊明");
- s.setSex(1);
- s.setBirthday(new Date());
- Address address = new Address("332000","13512345678","江西九江");
- s.setAddress(address);
- session.save(s);//保存对象进入数据库
- }
- @Test
- public void testGetStudents() {
- Student s = (Student) session.get(Student.class, 1);
- System.out.println(s);
- }
- @Test
- public void testLoadStudents() {
- Student s = (Student) session.load(Student.class, 1);
- System.out.println(s);
- }
- @Test
- public void testUpdateStudents() {
- Student s = (Student) session.get(Student.class, 1);
- s.setName("五柳先生");
- session.update(s);
- }
- @Test
- public void testDeleteStudents() {
- Student s = (Student) session.get(Student.class, 1);
- session.delete(s);
- }
三、get 和 load 的区别
区别一、
- 不考虑缓存的情况下,get 方法会在调用之后,立即向数据库发送 sql 语句,返回持久化对象。
- load 方法会在调用后返回一个持久化对象。该代理对象只保留了实体对象的 id,直到使用实体对象的非主键属性时才发出 sql 语句。
区别二、
- 查询数据库中不存在的数据时,get 方法返回 null 。
- load 方法返回异常 org.hibernate.ObjectNotFoundException
p
- 微信
- 赶快加我聊天吧
- 博客交流群
- 海纳百川,大家来水
2018年11月25日 13:52:29 1楼
ssssss
2018年12月24日 10:34:37 1层
@ 言曌 1
2018年12月24日 10:34:56 2层
@ 1111 2
2018年11月25日 13:52:57 2楼
ssss
2018年11月25日 13:53:19 1层
@ 你好 1111111
2018年11月25日 13:58:18 2层
@ 你好 sss
2018年12月24日 10:35:13 3层
@ 你好 22222