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