Hibernate的CRUD
1、CRUD:
C:sesion.save()
R:session.get()? session.load()
D:session.delete()
U:session.update()
2、读取数据——get() 和 load()比较
注意session.get()和session.load()的区别:
(1)、用get()方法从数据库中获得对象,若不存在则返回null,需要在程序中进行判断,否则抛错。用load()方法查询数据,若不存在数据,抛出ObjectNotFoundException错误。
(2)、get()方法不支持lazy(延迟);load()方法支持lazy。
(3)、lazy:只有真正使用这个对象的时候才创建。主要是提高性能。
lazy是Hibernate中重要的特性。hibernate中lazy的实现,是采用代理对象实现,代理采用CGLIB库生成,而不是采用JDK的动态代理,JDK的动态代理只能对实现了接口的类生成代理。
3、持久化对象的状态
(1)、Transient:数据库里没有,不被session管理
(2)、persistent:数据库里有,被session管理
(3)、Detached:数据库里有,不被session管理