现在的位置: 首页 > 综合 > 正文

About Hibernate

2013年10月08日 ⁄ 综合 ⁄ 共 1807字 ⁄ 字号 评论关闭

一.   Hibernate核心接口及其作用:

在项目中使用Hibernate框架,非常关键的一点就是要了解Hibernate的核心接口.这些接口位于业务层和持久化层.分别为:

Session,  SessionFactory,    Configuration,    Transaction,    Query(Criteria).

其作用分别如下:

Session接口负责执行被持久化对象的CRUD操作.但需要注意的是Session对象是非线形安全的.

SessionFactory接口负责初始化Hibernate.它充当数据存储源的代理,并负责创建Session对象.当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory.

Configuration接口负责配置并启动Hibernate,创建SessionFactory对象.Hibernate启动的过程中,Configuration类的实例首先定位映射文档位置,读取配置,然后创建SessionFactory对象.

Transaction接口负责事务相关的操作.是可选的.

QueryCriteria接口,负责执行各种数据库查询.分别对应的是HQL语言或SQL语言这两种表达方式.

 

注意:properties形式的配置文件和XML格式的配置文件可以同时使用.当同时使用两种类型的时候,XML配置文件中的设置会覆盖properties配置文件的相同属性.

二.   对象标识符号:

在关系数据库表中,主键用来识别和标识唯一记录.java,通过比较两个变量所引用对象的内存地址是否相同,或者比较两个引用的对象值是否相同来判断两对象是否相等.Hibernate用对象标识符(OID)来标识对象的唯一性.可以使用标识符生成器来生成标识.Hibernate里有很多标识生成器,具体请参考有关书籍.

三.   Hibernate映射类型

映射类型是java类型和SQL类型的桥梁.有两种:内置映射类型和自定义映射类型.

1.       内置映射类型:

也就是指诸如String,Date等原生类型定义的内置映射类型.

2.       自定义映射类型

需要实现org.hibernate.UserTypeorg.hibernate.CompositeUserType接口.( Hibernate3.0以上版本)

四.   Hibernate数据映射

1.       一对一映射

持久化对象间的一对一关联是通过one-to-one元素定义的.又可分为主键关联和唯一外键关联

1).主键关联

主键关联不需要额外的表字段.例子:

<one-to-one name=”person” class=”Person” />

<one-to-one name=”student” class=”Student” constrained=”true” />

                                                                             |_表示约束

下面的代码表示Person表的主键将采用foreign的方式生成(用外部表的字段做为主键).

<class name=”Person” table=”Person”>

        <id name=”id” column=”Person_id”>

               <generator class=”foreign”>

                      <param name=”property”>employee</param>

</generator>

</id>

<one-to-one name=”Student” class=Student”  constrained=”true” />

</class>

2)唯一外键关联

是指一个外键和一个唯一的关键字相关联.上面的例子可以写成如下形式:

<many-to-one name=”Person”  class=”Person” column=”Person_id” unique=”true” />

2.       多对一映射

<many-to-one>元素来定义.

五.   Hibernate检索方式

主要有HQL,QBC(Query by Criteria),QBE(Query by Example)等方式.HQL是一种面向对象的查询语言.后两种支持在运行时动态生成查询语句.

 

抱歉!评论已关闭.