使用Hibernate

摘要:
Hibernate使用XML文件来描述映射关系,文件通常命名为“实体类.hbm.xml”,存放在实体类相同的路径下。3)底层APIHibernate提供一系列的底层API,基于ORM思想对数据库进行访问,API主要是对映射关系文件的解析,根据解析出来的内容动态生成SQL语句,自动将属性和字段关系映射。

1、Hibernate框架设计原理

1)设计原理

Hibernate采用ORM思想对JDBC进行封装,Hibernate框架是ORM思想的一种实现,解决对象和数据库数据映射问题

Hibernate提供一系列API,允许我们直接访问实体对象,然后根据ORM映射关系,转换成SQL去执行,从而达到访问数据库的目的。

2)ORM思想

ORM(ObjectRelation Mapping)即对象关系映射,指的是Java对象和关系数据库之间的映射。

ORM思想,就是将对象与数据库进行相互转换的思想,不同的框架/技术实现ORM的手段不同,但更多的是采用配置+反射的方式实现。

2、Hibernate框架体系结构

1)主配置文件

Hibernate的主配置文件是一个XML文件,通常命名为 hibernate.cfg.xml ,此文件可以配置数据库连接参数、Hibernate框架参数、及映射关系文件

2)实体类

实体类是数据库表对应的Java类型,它是用于封装数据库记录的对象类型。

3)映射关系文件

映射关系文件指定实体类和数据库表的对应关系,即类中的属性和表中的字段之间的对应关系。

Hibernate使用XML文件来描述映射关系,文件通常命名为“实体类.hbm.xml”,存放在实体类相同的路径下。

3)底层API

Hibernate提供一系列的底层API,基于ORM思想对数据库进行访问,API主要是对映射关系文件的解析,根据解析出来的内容动态生成SQL语句,自动将属性和字段关系映射。

3、如何使用Hibernate

1)Hibernate常用的API

Configuration:负责加载主配置文件信息,同时加载映射关系文件信息

SessionFactory:负责创建Session对象

Session:数据库连接会话,负责执行增删改查操作

Transaction:负责事务控制

Query:负责执行特殊查询

2)Hibernate使用步骤

a.先导入Hibernate的jar包,及数据库驱动包

b.引入Hibernate主配置文件hibernate.cfg.xml

c.创建实体类

d.创建映射关系文件(存放于实体类相同路径下,通常命名为“实体类.hbm.xml”)

e.使用Hibernate常用API执行增删改查操作

4、Hibernate映射类型

Hibernate提供6种映射类型,书写时全小写,对应转换如下:

映射类型Java类型数据库类型
整数bytejava.liang.Bytenumber(m)
shortjava.lang.Shortnumber(m)
integerjava.lang.Integernumber(m)
longjava.lang.Longnumber(m)
小数floatjava.lang.Floatnumber(m,n)
doublejava.lang.Doublenumber(m,n)
字符串stringjava.lang.Stringvarchar()
日期(年月日)datejava.util.Date或java.sql.Datedate
时间(年月日时分秒)timejava.sql.Timestampdate
布尔yes/noboolean或java.lang.Booleanchar(1)('Y'or'N')
true/falseboolean或java.lang.Booleanchar(1)('T'or'F')

5、Hibernate主键生成方式

1)sequence:采用序列方式生成主键,适用于Oracle,其配置语法:

<generator class="sequence">
<param name="sequence">序列名</param>
</generator>

2)identity:采用数据库自增长机制生成主键,适用于数据库支持自动递增,其配置语法:

<generator class="increment"></generator>

注意:这种方式在并发量高时存在问题,可能会出现重复的主键。

3)assigned:是Hibernate不负责生成主键,需要开发者自己处理主键的生成,其配置语法:

<generator class="assigned"></generator>

4)uuid/hilo:采用uuid或hilo算法生成一个主键值,是一个不规则的长数字,其配置语法:

<generator class="uuid"></generator>

注意:这种方式生成的主键值可以保证不重复,但是没有规律,不能按主键值排序。

5)native:根据当前配置的数据库方案,自动选择sequenec或identity,其配置语法:

<generator class="native">
//注意:如果Oracle,需要制定序列名
<param name="sequence">序列名</param>
</generator>

6)increment:不是采用数据库自身的机制来生成主键,而是Hibernate提供的一种生成主键的方式,它会取当前表中主键的最大值,然后加1作为新的主键值,其配置语法:

<generator class="increment"></generator>

注意:这种方式在并发量高时存在问题,可能会出现重复的主键。

免责声明:文章转载自《使用Hibernate》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Delphi7中 string, AnsiString, Utf8String,WideString的区别分析(转)LocalDatetime 与 mybatis、json的坑下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

管理并行SQL执行的进程

本节介绍的并行执行功能可用于Oracle数据库企业版 本节介绍如何管理SQL语句的并行处理。在此配置中,Oracle数据库可以将处理SQL语句的工作分为多个并行进程。 许多SQL语句的执行可以并行化。并行度是可以与单个操作相关联的并行执行服务器的数量。并行度由以下任何因素决定:  声明中的PARALLEL子句 对于查询中引用的对象,创建或更改对象时使用的...

sqlplus显示乱码解决方法

sqlplus显示乱码与三个方面有关 1.数据库的字符编码 --查看数据库的编码 SELECT * FROM NLS_DATABASE_PARAMETERS;     本例中,可以看到数据库中字符串(char,varchar2,clob,long)使用的是AL32UTF8编码存储,即UTF8存储。数据库中的NCHAR,NVARCHAR等使用的是AL16UT...

RMAN 系列(七) RMAN 维护

这篇资料主要讲到了如下内容: 1. Rman 的维护 2. 恢复目录的维护 3. 备份恢复目录 4. RMAN 存储脚本 5. 删除数据库   一. RMAN 的维护 1.1 交叉效验RMAN 备份 在RMAN目录和物理备份目的地不同步的情况下,我们可以使用crosscheck命令来效验控制文件或恢复目录中的RMAN信息是否与备份介质上的实际物理备...

Java程序员必备的10个大数据框架!

作者:java妞妞 blog.csdn.net/javaniuniu/article/details/71250316 当今IT开发人员面对的最大挑战就是复杂性,硬件越来越复杂,OS越来越复杂,编程语言和API越来越复杂,我们构建的应用也越来越复杂。根据外媒的一项调查报告,列出了Java程序员在过去12个月内一直使用的一些工具或框架,或许会对你有...

3.oracle几种常用的登录方式

1.前言   这里我们在安装后oracle数据后就可以使用sqlplus命令进行登录了 2.oracle数据库的几种登录方式   2.1 sqlplus /nolog  (这样是为了不在cmd 或者terminal 上暴露密码的登录方式) $ sqlplus /nolog SQL> conn /as sysdba 或者 $ sqlplus /nol...

Django文件配置及orm

http协议 -特点:    1 基于TCP/IP协议之上的应用层协议    2 基于请求-响应模式    3 无状态保存    4 无连接 -请求头: 请求首行 get / http/1.1 key:value key:value 请求体的内容 -响...