1. Hibernate ORM类型的软件是对象持久话的技术,对象持久化的中间件,主要是对访问数据库进行了封装,对于使用者只要了解接口就可以了.
2. 以前都是用jdbcAPI对数据进行封装,缺点要有一定的技术水平才能作的完善,开发的周期长..hibernate是使用ORM即对象-关系映射,是面向对象的,关系模型是面向关系的,
面向对象主要是将表和对象关联起来.
1.
orm:对象关系映射。一般可以直接通过jdbc编程访问数据库,难以维护,现在我门需要将数据库封装起来,首先可以自己开发数据库持久层,难以保证全面,其次可以使用中间件,hibernate是一个开源的持久化的中间件,它对jdbc做了轻量级的封装,不仅提供了对象关系映射(org)还提供了数据查询和数据缓存功能,开发人员可以通过hibernate API操作数据库,也可以直接使用jdbc操作数据库。
Hibernated的核心接口:
Configuration接口:配置Hibernated,启动Hibernated,创建SessionFactory对象。
SessionFactory接口:初始化Hibernated,充当数据存储元,创建Session对象。
Session接口:主要增删改查对象。
Transaction:事务管理。
Query和Criteria接口:数据库查询。
配置Configuration,启动Hibernated。配置Hibernated通过Configuration实例来指定对象关系映射文件的位置或者动态配置Hibernated的属性,创建SessionFactory实例。SessionFactory对应一个数据元在初始化的时候要创建给实例,应用从SessionFactory中获得Session实例。Session是最常用的接口,主要是增删改查操作。Transaction接口用来声明事务,对低层事务做了封装,jdbc API,
JTA,CORBA等。Query和Criteria接口向数据库查询对象,包装了HQL查询语句HQL语句是面向对象使用类名和类的属性名不是表名和字段名,Criteria是基于字符串形式的查询比Query更面向对象主要擅长于动态查询。Session接口的find()方法也具有查询功能,它只执行简单的HQL语句查询的快捷方法。
当一个对象发生特定事件,例如:对象被增删改查后Hibernated应用通过回掉接口来响应,回掉接口有两种,
1.Lifecycle和Validatable接口:Lifecycle使持久化类能响应增删改查事件,Validatable接口实现持久化类的实例保存之前进行验证,这种方法必须实现Hibernated的特定接口,移植性差
2.Interceptor接口:程序可以专门实现Interceptor接口的类,Interceptor可以专门来响应实例的增删改查事件。
Hibernated的可扩展接口,比如Hibernated的内置策略。比如可以连接各种数据库Hibernated的etc目录下有Hibernated.propertise文件,有详细的例子
Hibernated的小例子:
首先建立一个DO对象的一个文件主要是get和set方法,注意get,set方法名后的属性名第一个要大写,要不然会抱错。如果为boolean话可以把get,set变成is.DO对象要实现串行化。
2. 建立一个XML文件的一个对数据库的和对象之间的映射。这里可以使用eclipse自动生成一个Customer.hbm.xml,应和类文件放在同一个目录下。
<class name="mypack.Customer" table="CUSTOMERS"> 这里的name指定的类名table指定的表名,class是一个类和表的映射。
(3) Id属性指主键,
<id name =”id” column=”ID” type=”long”>
<generator class=”increment”/> //对象标识符生成器,生成主键
</id>
(4)<property>指的是属性名字
<property name=””name colum=”NAME” type=”string”>
3.通过java类初始化Configuration根据配置文件创建实例SessionFactory创建实例,使用openSession获得session的实例,save(),update()等方法和数据库操作