Hibernate概述.ppt_第1页
Hibernate概述.ppt_第2页
Hibernate概述.ppt_第3页
Hibernate概述.ppt_第4页
Hibernate概述.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Hibernate概述,目录 CONTENTS,理解Hibernate应用程序结构,HelloWorld,ID生成策略,Hibernate API简介,持久化层,Hibernate是一个优秀的持久化框架,什么是持久化?,内存,姓名:张三 密码:123 性别:男,磁盘,用JDBC完成数据在持久和瞬时状态间的转换: *.execute ( ) .,瞬时状态:保存在内存的程序数据,程序退出后,数据就消失了,称为瞬时状态,持久状态:保存在磁盘上的程序数据,程序退出后依然存在,称为程序数据的持久状态,持久化: 将程序数据在瞬时状态和持久状态之间转换的机制,分层处理,Action,Server,Dao,D

2、B,用JDBC 持久数据,ORM,什么是ORM?,持久化层,业务逻辑层,表现层,关系型数据(R),映射信息,ORM(对象-关系映射): 完成对象数据到关系型数据映射的机制称为对象-关系映射,简称ORM。,TBL_User,什么是Hibernate,1. 应用广泛的ORM工具。 (ORM框架很多,如hibernate、toplink、jdo、JPA等) 2. Java实现的开发源码的持久化中间件。 3. 对JDBC做轻量级封装,必要的时候可以很自由的绕过Hibernate直接使用JDBC实现个这种功能。 4. Hibernate位于软件层次中的持久化层,负责业务逻辑层和数据库之间的交互,使业务逻

3、辑层更加专注于业务逻辑本身。,Hibernate应用程序的结构,HelloWorld,应用hibernate框架的步骤,创建Hibernate 的配置文件。 创建持久化类 创建对象-关系映射文件 通过Hibernate API 访问数据库的代码,HelloWorld,Step1: 创建名为hibernateSample的Dynamic Web Project。 Step2: 导入相关jar包,包括Hibernate框架相关jar包以及数据库驱动包。,Step3: 在mysql中建立对应的数据库以及表。 数据库 hibernateTest 表user(id, name, password, ag

4、e),HelloWorld,Step4: 建立hibernate 配置文件hibernate.cfg.xml com.mysql.jdbc.Driver jdbc:mysql:/localhost:3306/hibernateTest test 123 org.hibernate.dialect.MySQL5Dialect true,HelloWorld,Step5: 建立User 类 Step6: 建立User映射文件 User.hbm.xml Step7: 将映射文件加入到hibernate.cfg.xml中 Step8: 写测试类Test,在Test中对User对象进行直接的存储测试。

5、扩展:将此例与Struts2框架相结合,获取视图层用户填写的注册信息,将其记录到数据库中。,Hibernate持久化操作,Hibernate持久化操作步骤:,Hibernate持久化操作,Configuration,SessionFactory,Session,Transaction,创建,创建,开始,save delete update get mit() session.close(),执行,Hibernate.cfg.xml,结束,创建和销毁都相当耗费资源,通常一个系统内一个数据库只创建一个,类似于JDBC中的 Connection,复杂的查询操作稍后介绍,Hibernate API说明

6、,1. Session:持久化的管理器(1)进行CRUD操作(2)非线程安全的 避免多个线程操作同一个session。(3)session是轻量级的,创建和销毁几乎不会影响效率。可以频繁的创建和销毁。(4)session具备缓存,称为hibernate的第一级缓存,用于存储频繁操作的对象,提高效率,Hibernate API说明,2.SessionFactory:产生Session对象的工厂类 (1)产生session对象 (2)线程安全的,允许多线程同时操作 (3)重量级的,创建和销毁序要耗费资源,应避免频繁的创建和销毁 (4)具备缓存,用于存放数据库的相关信息,称为hibernate的第二

7、级缓存,Hibernate API说明,3. Transaction:事务管理4. Configuration:处理hibernate.cfg.xml的配置信息5. Query、Criteria:面向对象的查询,ID生成策略,1. assigned:手动分配。 主键由外部程序生成,无需Hibernate参与。 (1)用户使用自定义的生成策略。Hibernate放弃对id的管理。 (2)如果在映射文件中不去配置id的生成策略,则默认为该方式。 (3)用户需要在该策略下插入记录时手动配置id。 ,ID生成策略,2. increment:自动分配。自动增长的id生成策略。主键按数值顺序递增。此方式的

8、实现机制为在当前应用实例中的维持一个变量,以保存着当前的最大值,之后每次需要声称主键的时候将此值加一作为主键。 这种方式可能产生的问题是:如果当前有多个实例访问同一个数据库,那么由于各个实例各自维护主键状态,不同实例可能生成同样的主键,从而造成主键重复异常。因此,如果同一数据库有多个实例访问,此方式必须避免使用。 OID必须为long、int或short类型。 ,ID生成策略,3. hilo:高低值算法生成策略。通过hi/lo算法实现的主键生成机制,需要额外的数据库表保存主键生成历史状态。 OID必须为long、int或short类型。 注意:对hilo_tbl表进行初始化。 hilo_tbl

9、 nextvalue 100 ,ID生成策略,4. identity:由底层数据库来负责生成标识符,它要求底层数据库把主键定义为自动增长类型。例如,在MySQL中,应把主键定义为auto_increment类型。 由于indentity生成标识符的机制依赖于底层数据库系统,因此,要求底层数据库系统必须支持自动增长字段类型。 OID必须为long、int或short类型。 ,ID生成策略,4. sequence:利用底层数据库提供的序列来生成标识符。 5. native:依据底层数据库对自动生成标识符的支持能力,来选择使用identity、sequence或hilo标识符生成器。 OID必须为long、int或short类型。,ID生成策略,4. uuid:由Hibernate基于128位唯一值产生算法生成16进制数值(编码后以长度为32的字符串表示)作为主键。 通用唯一识别码 (Universally Unique Identifier, UUID) 是一个软件建构的标准,亦为自由软件基金会 (Open Software Foundation, OSF) 的组织在分散式计算环境 (Distributed

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论