About Hibernate
原创
©著作权归作者所有:来自51CTO博客作者blackanger的原创作品,请联系作者获取转载授权,否则将追究法律责任
一. Hibernate核心接口及其作用:
在项目中使用Hibernate框架,非常关键的一点就是要了解Hibernate的核心接口.这些接口位于业务层和持久化层.分别为:
Session, SessionFactory, Configuration, Transaction, Query(或Criteria).
其作用分别如下:
Session接口负责执行被持久化对象的CRUD操作.但需要注意的是Session对象是非线形安全的.
SessionFactory接口负责初始化Hibernate.它充当数据存储源的代理,并负责创建Session对象.当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory.
Configuration接口负责配置并启动Hibernate,创建SessionFactory对象.在Hibernate启动的过程中,Configuration类的实例首先定位映射文档位置,读取配置,然后创建SessionFactory对象.
Transaction接口负责事务相关的操作.是可选的.
Query和Criteria接口,负责执行各种数据库查询.分别对应的是HQL语言或SQL语言这两种表达方式.
注意:properties形式的配置文件和XML格式的配置文件可以同时使用.当同时使用两种类型的时候,XML配置文件中的设置会覆盖properties配置文件的相同属性.
二. 对象标识符号:
在关系数据库表中,主键用来识别和标识唯一记录.在java中,通过比较两个变量所引用对象的内存地址是否相同,或者比较两个引用的对象值是否相同来判断两对象是否相等.Hibernate用对象标识符(OID)来标识对象的唯一性.可以使用标识符生成器来生成标识.Hibernate里有很多标识生成器,具体请参考有关书籍.
三. Hibernate映射类型
映射类型是java类型和SQL类型的桥梁.有两种:内置映射类型和自定义映射类型.
1. 内置映射类型:
也就是指诸如String,Date等原生类型定义的内置映射类型.
2. 自定义映射类型
需要实现org.hibernate.UserType或org.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是一种面向对象的查询语言.后两种支持在运行时动态生成查询语句.
下一篇:tomcat性能优化
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
About UserAccountControl
关于UserAccountControl即熟悉又陌生,让我们来窥视下吧~
AD UserAccountControl -
About KaiSarH
About Me
css html c# javascript 轮播图