




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章 Hibernate基础 内容回顾 什么是自定义标签库Struts2标签是如何分类的 如何使用控制标签如何使用数据标签如何使用UI标签 思考问题 什么是ORM 什么是持久化 Hibernate的作用 Hibernate有哪些常用组件 如何下载与安装Hibernate MySqL数据库的安装及使用方法 本章任务 下载并安装Hibernate下载并安装使用MySql数据库 本章目标 了解什么是ORM 理解持久化的概念掌握Hibernate的作用 掌握Hibernate有哪些常用组件 掌握下载与安装Hibernate的方法掌握下载与安装使用MySql数据库的方法 Hibernate概述 Hibernate是一个免费的开源Java包 它使得程序与数据库的交互变得十分容易 更加符合面向对象的设计思想 像数据库中包含普通Java对象一样 而不必考虑如何把它们从数据库表中取出 使开发者可以专注于应用程序的对象和功能 而不必关心如何保存它们或查找这些对象 甚至在对SQL语句完全不了解的情况下 使用hibernate仍然可以开发出优秀的包含数据库访问的应用程序 1回顾JDBC简介 Java访问数据库最原始的方法是通过JDBC来完成的 JDBC JavaDataBaseConnectivity java数据库连接 是一种用于执行SQL语句的JavaAPI 可以为多种关系数据库提供统一访问 它由一组用Java语言编写的类和接口组成 JDBC是J2EE标准的一部分 它提供了一种基准 据此可以构建更高级的工具和接口 使数据库开发人员能够编写数据库应用程序 1 1JDBC提供的工具接口 java sql包提供了JDBCAPI 开发者可以通过它们编写数据库的程序代码 在java sql包中常见的类和接口包括以下内容 DriverManager类 负责管理JDBC驱动程序 使用JDBC驱动程序之前 必须先将驱动程序加载并向DriverManager注册后才可以使用 同时提供方法来建立与数据库的连接 Connection类 负责维护JSP JAVA数据库程序和数据库之间的联机 可以建立三个非常有用的类对象 1 1JDBC提供的工具接口 Statement类 通过Statement类所提供的方法 可以利用标准的SQL命令 对数据库直接新增 删除或修改操作PreparedStatement类 PreparedStatement类和Statement类的不同之处在于PreparedStatement类对象会将传入的SQL命令事先编好等待使用 当有单一的SQL指令比多次执行时 用PreparedStatement类会比Statement类有效率ResultSet类 负责存储查询数据库的结果 并提供一系列的方法对数据库进行新增 删除和修改操作 也负责维护一个记录指针 Cursor 记录指针指向数据表中的某个记录 通过适当的移动记录指针 可以随心所欲的存取数据库 加强程序的效率 1 2JDBC访问数据库 使用JDBC操作数据库 一般基本都是如下几个步骤 1 载入数据库驱动 不同的数据库驱动程序是不同的 一般由数据库厂商提供这些驱动程序 2 建立数据库连接 获得Connection对象 3 根据SQL语句建立Statement对象或者PreparedStatement对象 4 用Connection对象执行SQL语句 获得结果集ResultSet对象 5 然后一条一条读取结果集ResultSet对象中的数据 保存在某个Java对象中 6 如果是修改或者删除操作需要对数据发commit命令 7 最后依次关闭各个Statement对象和Connection对象 1 2JDBC访问数据库 JDBCAPI JDBCAPI可做三件事 与数据库建立连接 执行SQL语句 处理结果 Connection DriverManager Statement ResultSet 客户端 数据库服务器 1 2 3 4 DriverManager 依据数据库的不同 管理JDBC驱动Connection 负责连接数据库并担任传送数据的任务Statement 由Connection产生 负责执行SQL语句ResultSet 负责保存Statement执行后所产生的查询结果 1 3持久化层 访问数据库代码与业务逻辑混杂在一起带来了很多问题 这样的程序设计严重阻碍了程序的可扩展性和适应性 所以有必要要把涉及数据库操作的代码分离出来与业务逻辑分离 就形成了所谓 持久化层 的概念 持久化 Persistence 即把临时性数据 如内存中的对象 保存到可永久保存的存储设备中 如磁盘 持久化的主要应用是将内存中的数据存储在关系型的数据库中 当然也可以存储在磁盘文件中 XML数据文件中等等 在本书中介绍的 持久化 仅针对将存储数据库的情况 1 4关系型数据库与面向对象的冲突 面向对象是从软件工程基本原则 如耦合 聚合 封装 的基础上发展起来的 而关系数据库则是从数学理论发展而来的 两套理论存在显著的区别 而Java是完全面向对象的语言 这个冲突就表现的越发明显 对目前的J2EE信息化系统而言 通常采用面向对象分析和面向对象设计的过程 系统从需求设计到系统设计都是按面向对象方式进行 但到了详细设计阶段 由于数据持久化需要保存到关系数据库 不得不自底向上修改设计方案 又回到了按照过程进行编程的老路上来 这是非常令人沮丧的 2ORM介绍 ORM的全称是Object RelationMapping 即对象 关系映射 ORM也可理解是一种规范 具体的ORM框架可作为应用程序和数据库的桥梁 目前ORM的产品非常多 比如Apache组织下的OJB Oracle的TopLink JDO JPA等等 当然还包括本章介绍的hibernate 2 1什么是ORM 面向对象程序设计语言与关系数据库发展不同步时 需要一种中间解决方案 ORM框架就是这样的解决方案 ORM并不是一种具体的产品 而是一类框架的总称 它概述了这类框架的基本特征 完成面向对象的程序设计语言到关系数据库的映射 基于ORM框架完成映射后 既可利用面向对象程序设计语言的简单易用性 又可利用关系数据库的技术优势 2 2ORM带来了什么 面向对象的程序设计语言 代表了目前程序设计语言的主流和趋势 其具备非常多的优势 比如 面向对象的建模 操作 多态 继承 摒弃难以理解的过程 简单易用 易理解性 2 3流行的ORM框架简介 目前ORM框架的产品非常多 除了各大著名公司 组织的产品外 甚至 其他一些小团队也都有推出自己的ORM框架 目前流行的ORM框架有如下这些产品 传统的EntityEJB Hibernate IBATIS Oracle的TopLink OJB JPA JavaPersistenceAPI 3Hibernate项目简介 Hibernate是目前最流行的ORM框架 它是一个面向Java环境的对象 关系数据库映射工具 Hibernate也是一个轻量级的O RMapping框架 它问世的时间并不长 但已经成为目前最流行的持久层解决方案 较之另一个持久层框架iBATIS Hibernate更具有面向对象的特征 较之传统的EntityEJB的持久层解决方案 Hibernate则采用低侵入式的设计 即完全采用普通的Java对象 POJO 而不必继承Hibernate的某个超类或实现Hibernate的某个接口 Hibernate是面向对象的程序设计语言和关系数据库之间的桥梁 Hibernate真正实现了开发者采用面向对象的方式来操作关系数据库 什么是Hibernate Hibernate之父 GavinKingJBoss核心成员之一EJB3 0专家委员会成员 HibernateInAction 作者2001年开始开发Hibernate2003年Hibernate发展为Java世界主流持久层框架充满激情脾气倔强永不言败 3 1Hibernate的传奇经历 为了解决ORM的问题 Sun公司首先推出了EntityEJB的解决方案 这是一种优秀的 但备受争议的解决方案 主要问题是EJB的开发相当繁琐 而且需要EJB容器支持 这都影响了EntityEJB的实际应用 后来Sun公司又推出了JDO规范 但因为各厂商之间的实现又互不相同 故也未得到广泛应用 在这一时期 iBATIS和Apache组织下的另一个持久层框架 在许多J2EE应用中大展拳脚 但iBATIS并不是真正的O RMapping 它仅仅停留在SQLMapping映射阶段 并未让开发者能完全运行面向对象的种种优势 在这种背景下 Java开发界在等待一种成熟的O RMapping解决方案 它应该具有简单易用的特性 最好能开源免费 而且无须任何容器支持 在这样的情形下 Hibernate应运而生 于是Hibernate迅速在J2EE开发领域流行开来 3 2为什么要选择Hibernate Hibernate能在众多的ORM框架中脱颖而出 因为Hibernate与其他ORM框架对比具有如下优势 开源和免费的License 方便需要时研究源代码 改写源代码 进行功能定制 轻量级封装 避免引入过多复杂的问题 调试容易 可减轻程序员负担 具有可扩展性 API开放 功能不够用时 可自己编码进行扩展 开发者活跃 产品有稳定的发展保障 Hibernate的工作方式灵巧的设计 出色的性能表现目前Hibernate在国内的开发人员相当多 Hibernate的文档非常丰富 这些都为学习Hibernate铺平了道路 因而Hibernate的学习相对简单一些 小结 前几节内容先由Java访问数据库谈起 由于面向对象的开发语言与关系型数据库的设计差异 引出了持久化层和ORM工具的概念 而Hibernate正是ORM框架的佼佼者 因为有了Hibernate的支持 使得J2EE应用的OOA 面向对象分析 OOD 面向对象设计 和OOP 面向对象编程 三个过程一脉相承 成为一个整体 4 Hibernate的优点 Hibernate采用XML文件来配置对象 关系映射 这样做的优点体现在 Hibernate既不会渗透到上层模型中 也不会渗透到下层数据模型中 开发人员可以独立设计域模型 不必强迫遵守任何规范 数据库设计人员可以独立设计数据模型 不必强迫遵守任何规范 对象 关系映射不依赖于任何程序代码 如果需要修改对象 关系映射 只需要修改XML文件 不需要修改代码 提高了软件的灵活性 并且使维护更加方便 使用Hibernate数据持久层JDBC操作数据库相比 有以下两点优势 减少访问数据库的频率 应用程序从内存中读取持久化对象的速度 比到数据库中查询数据的速度快多了 因此Session的缓存可以提高数据访问的性能 保证缓存中的对象与数据库中的相关记录保持同步 当缓存中持久化对象的状态发生变化时 Session不会立即执行SQL语句 而是重新获取一遍数据 Session能够把几条相关的SQL语句合并为一条SQL语句 以减少访问数据库的次数 从而提高应用程序的性能 5 Hibernate的下载 下载Hibernate的网站是www hibernate org 下面简单介绍一下hibernate中的几个选项 Hibernatecore 这就是常说的Hibernate 它提供了ORM 可以帮助开发人员节省持久层的编码时间 HibernateAnnotation 提供了JDK代码的标注功能 使用它可以减少描述符 编译器校验 还可以减少配置和维护等工作 HibernateEntityManager 它以Hibernate的方式 实现J2EE标准中的Java持久化编程接口 JPA HibernateValidator 一个验证框架 可以独立使用 HibernateSearch Hibernate与Lucene相结合的一个Java全文搜索引擎 有了它可以轻易地为Java应用程序加入全文搜索功能 Hibernateshards 通过Hibernate在多重数据库上提供一个统一的视图 Hibernatetools 提供的一些Eclipse插件和Ant工具 6 Hibernate的安装 Hibernate的安装非常简单 它不依赖于任何框架或组件 所以在使用时 直接将它的jar文件加载到项目的classPath中就可以 解压后的目录结构如下图所示 7安装MySQL数据库 MySQL是一个小型关系型数据库管理系统 开发者为瑞典MySQLAB公司 其体积小 速度快而且它是免费并且开源的 对于一般的个人使用者和中小型企业来说 MySQL提供的功能和性能已经绰绰有余 尤其适合初学者学习使用 本书与数据库相关的实例都是基于MySQL数据库的 7 1下载MySql MySQL的下载地址 http dev MySQL com downloads 目前发布的最新版本为MySQL6 0 选择windows平台 最简单的安装方式Setup exe下载 下载页面如图所示 7 2安装MySQL MySQL的安装十分简单 下载解压之后是一个独立的setup exe文件 直接运行安装 与一般的软件安装有点不同 只有在选择Cus
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广州市中考英语试卷真题及答案详解
- 老年人知识培训小结课件
- 老年人眼病防治课件
- 《中国古典文学鉴赏》课程简介与教学大纲
- 《英国文学史及选读》课程介绍与教学大纲
- 醛酮亲核加成反应课件
- 专题五 列表(课件)-《Python程序设计》职教高考备考讲练测
- 实验仪器与操作-2025年新初三化学暑假专项提升(人教)原卷版
- 老年人安全知识培训简报课件
- 老年人安全常识课件
- 2025专精特新小巨人打分表(密件)
- 离婚协议书正规打印电子版(2025年版)
- 《 大学生军事理论教程》全套教学课件
- 商品精修教案项目5服装精修
- 小升初简历模板2020免费
- 19-雾在哪里ppt市公开课金奖市赛课一等奖课件
- 金融统计分析教材课件
- 《社会主义核心价值观》优秀课件
- DDI定向井难度系数
- 河南省家庭经济困难学生认定申请表
- 电催化精品课件
评论
0/150
提交评论