Hibernate的CRUD

时间:2023-03-08 18:14:50

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管理