1、持久化是将程序中的数据在瞬时状态和持久状态间转换的机制。
2、hibernate的配置文件如图所示:
3、常用的主键生成策略:increment,identity,sequence,native,assigned.
4、hibernate对数据库的两种查询操作:Object load(class c,Serializable id) Object get(Class c,Serializable id).
get方法加载的是数据库。而load方法加载的是实体类。因此,当加载的数据不存在的时候,get方法会返回一个null对象,而load会抛出一个异常。
5、hibernate中实体对象的三种状态:瞬时状态,持久状态,游离状态。
(1)在使用进行持久化操作前,实例化User对象,此时,User对象并未与数据库中的数据有任何的关系,这时User对象的状态为瞬时状态。
(2)当使用Session的get方法或者load方法加载数据库中一条数据的时候,返回的User对象是与数据库中的一条数据关联的。此时User对象为持久状态。
(3)处于持久状态的对象,其对应的Session实例关闭之后,User对象的各个属性的值与数据库中一条数据的属性值是对应的,但是此时User对象并未受到Session实例的管理,所以,此时的User对象处于游离状态。
(注:对处于持久状态的对象通过Session的delete方法删除后,该对象的状态不是转变为游离状态,而是转变为瞬时状态,因为此时该对象没有与任何的数据库数据关联。)
6、在配置hibernate时,如果表在数据库中不存在,可以设置属性hbm2ddl.auto。它可以自动生成表。