Hibernate基础知识

一.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 作为业务主键。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值