一.Hibernate是什么
- 在分层体系结构中Hibernate位于持久层,是完成对象持久化的持久层框架;
- Hibernate是连接Java应用程序和关系型数据库的框架,能够建立对象模型和关系数据模型之间的映射,是一种自动ORM框架;
- Hibernate是对JDBC API的封装,是JDBC轻量级封装框架。
二.创建Hibernate项目的步骤
- 使用Eclipse创建新的项目;
- 引入Hibernate及其依赖库(jar包);
- 引入Mysql数据库驱动包;
- 编写Hibernate配置文件;
- 创建Java持久化类XXX.java;
- 编写持久化类的映射配置文件XXX.hbm.xml;
- 使用Hibernate API 完成对象的持久化。
三.Hibernate配置文件
四.创建持久化类
- 持久化类:指其实例需要被Hibernate持久化到数据库中的类即实体类
– private 类型属性;
– public 类型的 setter 和 getter 方法;
– public 或 protected 类型的无参数的构造方法。
五.创建持久化类的配置文件
- 创建持久化类的配置文件。
– 描述持久化类与数据库表之间的对应关系
- 元素用于指定类和表之间的映射。
– name属性设定类名(包含路径);
– table属性设定表名,默认以类名作表名。
- 元素包含一个子元素及多个子元素。
- id 子元素设定持久化类的OID和表的主键的映射关系。
– column – 指定表字段的名称;
– generator – 元素指定OID的生成器。
- property 子元素设定类的其他属性和表的字段的映射关系。
– name – 对应类的属性名称;
– type – 指定属性的类型;
– column – 指定表字段的名称;
– not-null – 指定属性是否允许为空。
六.Hibernate中如何区分对象
– OID 是关系数据库表中的主键(通常是代理主键)在 Java 对象模型中的等价物;
– Hibernate 采用 OID 来维持Java持久化类和数据库表中对应关系;
– Object Identifier。
(1)映射文件中OID的配置
- 在对象-关系映射配置文件中元素的子元素用来设置 OID。
– 子元素用来指定OID的生成器。
(2)标识符生成器
- Hibernate 自带了很多种标识符生成器:
- increment 采用 Hibernate 数值递增的方式;
- identity 采用数据库提供的自增长方式;
- assigned 主键由应用逻辑产生;
- sequence 采用数据库提供的序列方式;
- hilo 通过hi/lo算法 // Hibernate 5.0 以后不支持;
- seqhilo 通过hi/lo算法;
- native 自动选择合适的标识符生成器;
- uuid.hex 通过uuid算法。
(3)increment标识符适用范围
- 不依赖于底层数据库系统,适合所有数据库;
– 适合单独的 Hibernate 应用使用,不适合在集群情况下使用。
(4)identity标识符适用范围
- identity 标识符:该机制依赖于底层数据库,需要数据库支持自动增长字段。
– 例如:MySQL、MSSQL、DB2、Sybase等。
(5)assigned 标识符适用范围
- assigned 标识符:该机制是由外部程序负责生成 OID, Hibernate 不负责维护主键生成,与Hibernate和底层数据库都无关。
– 例如: Student 类没有定义 ID,而是以学号 studentNo 作为业务主键。