Hibernate概述

                              Hibernate概述

Hibernate是流行的ORM(ObjectRelational Mapping,对象关系映射)框架解决方案。

ORM框架为了将针对关系型数据的操作转换成对象操作,需要实现关系数据到对象的映射,这种映射关系通常写在ORM框架的配置文件中。其映射规则就将数据库中的表映射到面向对象语言中的类,表中的列映射成类的属性,表中的每一条记录对应一个该类的对象,而表跟表之间的关系则映射成对象之间的关系。

如上图所示,数据库中有一个UserDetails表,它与User类映射,表中的id、name、pwd字段对应User类中的3个同名属性:objUser是User类的一个对象,映射的是UserDetails表中的第3条记录。

 

ORM框架有以下几个优点:

贯穿面向对象的编程思想;

减少代码的编写量,提高工作效率;

提高访问数据库的性能,降低访问数据库的频率;

具有相对的独立性,发生变化时不会影响上层的实现;

 

Hibernate概述

Hibernate框架是轻量级JavaEE应用中持久层的解决方案,Hibernate不仅管理对象数据到数据库的映射,还提供面向对象的数据查询和获取方法,与单纯使用JDBC相比,大幅度缩短了进行数据持久化处理的开发时间。

Hibernate在应用程序中的位置及应用

 

1.Hibernate中的持久化对象

从上图中可以看到Hibernate应用中有一个非常重要的媒介,即持久化对象(PO:Persistent Object).持久化对象的作用就是完成持久化操作,应用程序无须直接访问数据库,只需要创建、修改或删除持久化对象,Hibernate则会负责将这些操作转化换成相应的对数据库表的操作。

Hibernate中的PO非常简单,采用低侵入设计,完全使用POJO作为持久化对象。

从上述代码中可以看出,POJO跟普通的JavaBean一样。Hibernate直接采用POJO作为PO,不需要持久化类继承任何父类,或者实现任何接口,以低侵入方式保证了代码的简单性、独立性和可重用性。

为使POJO具备可持久化操作的能力,Hibernate采用XML作为映射文件对POJO类和数据库中的表进行映射。POJO对应的映射文件示例代码如下:

上述配置文件中,<hibernate-mapping>元素是Hibernate映射文件的根元素,<class>元素描述类和表之间的映射,这样每个class元素将映射成一个PO,即PO=POJO+映射文件,通过Hibernate映射文件中的配置信息,清晰地表达了持久化类和数据库表之间的对应关系。

 


Hibernate应用开发方式

Hibernate应用程序的开发一般经过一下几个步骤

01 配置Hibernate应用环境,在应用中添加Hibernate所需的jar包,并创建Hibernate配置文件

02 创建持久化类及其ORM映射文件

03 利用Configuration装载配置

04 利用SessionFactory创建Session

05 通过Session进行持久化对象的管理

06 利用Transaction管理事务

07 利用Query进行HQL查询或利用Criteria实现条件查询

 

Hibernate应用示例

根据所述的开发步骤,通过一个完整的示例来演示Eclipse中开发Hibernate应用程序的过程

 

一、 配置Hibernate应用环境

为了让应用程序能够支持Hibernate的功能,必须将Hibernate的核心类库文件添加到应用中,以Web应用程序为例,只需要将Hibernate的核心jar文件复制到Web应用的lib路径下,如下图:

这些jar文件都是必需的,其中hibernate3.jar文件是Hibernate的核心类库文件,其他文件是Hibernate框架本身需要引用的jar文件。

注意:在应用中不必一次性将所有jar文件都复制到应用程序中,而是根据需要添加相应的jar文件。

在Web应用中加入Hibernate所必需的类库后,还需要创建Hibernate配置文件。Hibernate配置文件主要用于配置与数据库相关的一些公用参数,例如,链接数据库的URL、用户名、密码、是否创建或更新表等信息,这些信息对所有持久化类都是通用的。

Hibernate配置文件可以是hibernate.properties或hibernate.cfg.xml,两种形式可以任选其一,或结合使用。在实际应用中,通常使用XML文件形式的配置,并将hibernate.cfg.xml配置文件放在类文件的根目录(即src目录)下,如下图:

  

hibernate.cfg.xml文件中配置信息的格式如代码所示

                 上述配置信息中,<hibernate-configuration>元素是Hibernate配置文件的根元素,在此根元素中有<session-factory>子元素,该元素中依次有多个<property>元素,这些<property>元素配置Hibernate连接数据库的必要信息。在<session-factory>元素中可以有多个<mapping>元素,每个<mapping>元素指定一个Hibernate映射文件。

二、 创建持久化类及ORM映射文件

在com.lyu.hibernate.pojos包下创建一个持久化类Customer类

           上述代码创建了一个客户Customer,该类中分别提供了带参数和不带参数的构造方法,并提供这些属性的getter和setter方法。

下面创建Customer类对应的映射文件Customer.hbm.xml,该映射文件与Customer类放在同一目录下,如下图:

上述配置文件将Customer类和数据库中的CUSTOMER表进行映射

在hibernate.cfg.xml文件中注册Customer.hbm.xml映射文件中,代码如下所示

<mappingresource=”com/lyu/hibernate/pojos/Customer.hbm.xml”/>

 

三、 利用Configuration装置配置、SessionFactory创建Session、Session操作数据库                                                                                                                                                                                                                                       

©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页