Hibernate应用基础知识.ppt_第1页
Hibernate应用基础知识.ppt_第2页
Hibernate应用基础知识.ppt_第3页
Hibernate应用基础知识.ppt_第4页
Hibernate应用基础知识.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

企业级JAVA II,软件工程系:聂常红 cred_,内容回顾,输入校验概念 输入校验方式 Struts2校验框架校验语法 常用Struts2校验器 Struts2校验器配置方式,第8讲 Hibernate应用基础知识,8.1ORM框架 8.2 Hibernate 8.2.1 Hibernate的运行环境 8.2.2 持久化类 8.2.3 映射文件 8.2.4 Hibernate核心类与接口 8.3 开发一个简单的Hibernate项目 8.4 Hibernate对象的三种状态 8.5 持久层设计模式 8.6 基于持久层框架的DAO模式应用示例,8.1 ORM,问题引入: 面向对象语言:对象模型,主要概念是类、对象、继承、多态、关联等 关系型数据库:关系模型,主要概念是表、记录、主键、外键等 面向对象语言和数据库之间存在模型不匹配(阻抗不匹配)问题 问题解决办法: 使用ORM框架,ORM: ORM(Object/Relation Mapping,对象、关系数据库映射),用于实现Java应用中的对象与关系数据库中的数据的映射,从而可以通过持久化对象(PO)以面向对象的方式来操作数据库。 ORM关系图:,8.2 hibernate,主流的ORM框架有hibernate、TopLink等,其中hibernate应用最广泛 Hibernate是轻量级的Java EE应用的持久层解决方案。它对JDBC进行了轻量级的封装,不仅能管理Java类到数据库表的映射,还能提供数据查询和获取数据的方法。 使用Hibernate可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间,Hibernate简要体系架构:,PO是应用程序和ORM框架之间的一个媒介,8.2.1 Hibernate运行环境,需要以下jar文件: 配置hibernate.cfg.xml文件或perties属性文件 用于配置数据库连接设置、Hibernate属性设置及映射文件设置。 两者取一,常用xml文件,,hibernate.cfg.xml示例:,实际使用一般不用Hibernate的连接池,8.2.2 持久化类,ORM的作用是把对PO的CRUD等操作转换成对数据库的相关操作。 持久化类编写规范: 必须具有无参构造方法 具有一个主键属性 非final类,否则无法使用懒加载以及代理 使用JavaBean的编写规范来编写属性的setter和getter方法,持久化类创建示例:,8.2.3 映射文件,用于设置持久化类与数据库表的映射关系,是hibernate的核心所在。 一般以持久化类名+hbm.xml来命名,如Person.hbm.xml;并保存在与持久化类同目录下 最主要的元素有: : 设置类-表之间的映射 : 设置主键映射 :设置普通属性-表字段之间的映射 、 、 :设置关联映射,映射文件示例:,常用主键生成方式: assigned: 由应用程序生成 identity: 使用数据库提供的自增长主键机制,如Mysql sequence: 使用数据库提供的sequence机制生成主键,如oracle native:由hibernate根据数据库驱动定义,自动选择主键生成机制,8.2.4 Hibernate核心API,Configuration类: 负责读取及解析Hibernate的配置信息 创建SessionFactory实例,SessionFactory接口: 是数据库编译后的内存镜向,其中缓存了解析后的配置信息 在应用初始化时创建,对于使用一个数据库的应用程序只有一个会话工厂 用于创建Session实例,ServiceRegistry类型,Session接口: Session封装了与数据库之间的一系列操作 所有持久化操作都需要使用该接口 所有持久化操作完成后,需要关闭会话,Transaction接口: 使用Hibernate进行持久化操作必须显式开启事务 使用Session实例开启事务 持久化操作在事务提交后生效,使用Hibernate进行持久化操作步骤,搭建Hibernate运行环境 配置hibernate.cfg.xml文件 创建持久化类,并设置映射文件 获取Configuration实例 获取SessionFactory实例 获取Session实例 开启事务 用面向对象的方式操作数据库 提交或回滚事务,关闭Session,8.3 开发一个简单的Hibernate项目,建立数据库 新建Java项目 将Hibernate所需JAR文件及数据库驱动类库添加到构建路径 编写Hibernate配置文hibernate.cfg.xml,保存在src目录下 编写持久化类 编写映射文件xxx.hbm.xml 编写测试类,编写hibernate.cfg.xml:,编写持久化类Person.java:,编写映射文件Person.hbm.xml :,编写测试类:,8.4 Hibernate中Java对象的状态,在hibernate中,Java对象在整个生命周期中存在以下三种状态: 瞬时状态:在内存中刚刚创建的对象,数据库中没有数据与之对应,与session也没有关联 持久化状态:数据库中有数据与之对应,且与session有关联; 持久对象状态发生改变时,事务提交时会自动更新数据库 游离(脱管)状态:数据库中有数据与之对应,但当前没有session与之关联;对象状态发生改变,hibernate不能检测到,必须调用update()才能更新到数据库,游离状态,1. update() 2.saveOrUpdate() 3.lock(),1.save() 2.saveOrUpdate(),Java对象状态转换图,瞬时状态,持久化状态,1.evict() 2.close() 3.clear(),1.get() 2.load() 3.find(),delete(),8.5 持久层设计模式,数据的持久化就是将内存中的数据固化到服务器的存储介质中。在企业级应用中,通常将数据的持久化放到一个相对独立的逻辑层面上,这个逻辑层称为持久层。 数据持久化设计的模式主要有: 混杂模式:在业务代码中夹杂着数据持久化代码。适用于小型应用,可读性差,后期维护和扩展困难,业务逻辑+SQL,DB,基于Data class的持久层实现模式(DAO模式):把对数据库的处理代码从应用中抽取出来,放到单独的接口及其实现类中。 基于持久层框架的实现模式:是第二种模式的延伸,将繁杂的SQL代码处理交给第三方组件完成,业务逻辑,DB,业务逻辑,DB,8.6 基于持久层框架的DAO模式应用示例,建立数据库 新建Java项目 将Hibernate所需JAR文件及数据库驱动类库添加到构建路径 编写Hibernate配置文hibernate.cfg.xml 编写持久化类 编写映射文件xxx.hbm.xml 编写一个工具类,用于获取Session实例 编写DAO接口 使用Hibernate API实现DAO接口 编写测试类,编写hibernate.cfg.xml:,编写持久化类Person.java:,编写映射文件Person.hbm.xml :,编写工具类:,编写DAO接口:,使用Hibernate API实现DAO接口,编写测试类:,思考题,如何搭建Hiber

温馨提示

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

评论

0/150

提交评论