ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:70.14KB ,
资源ID:6469319      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6469319.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(07单元7基于Hibernate的Web应用程序开发校.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

07单元7基于Hibernate的Web应用程序开发校.docx

1、07单元7基于Hibernate的Web应用程序开发校单元7基于Hibernate的Web应用程序开发Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了简单的对象封装,使得Java程序员可以使用面向对象编程思想来操作数据库。Hibernate既可以在Java的客户端程序中使用,也可以JSP/Servlet的Web应用程序中使用,Hibernate可以在Java EE中取代CMP(Container-Managed Persistence),完成数据持久化的重任。【问题探析】【问题1】面向对象的开发方法与关系数据库【问题2】比较JDBC与Hibernate访问数据库的不同点

2、【问题3】Hibernate的持久化层与应用程序的三层结构的关系如何?【知识必备】1Hibernate简介Hibernate是一个开源的持久层框架,Hibernate就是位于数据库和应用程序之间的各种ORM中间件。Hibernate是一种Java语言下的对象关系映射解决方案,它是一种自由、开源的软件。它用来把对象模型表示的对象映射到基于SQL的关系模型结构中,为面向对象的领域模型到传统的关系型模型库的映射提供了一个使用方便的框架。Hibernate封装了数据库的访问细节,并一直维护着实体类与关系型数据库中数据表之间的映射关系,业务处理可以通过Hibernate提供的API接口进行数据库操作。2

3、对象关系映射对象关系映射(Object Relational Mapping,ORM)是一种为了解决面向对象与关系数据库的相互匹配的技术,是随着面向对象的软件开发方法发展而产生的。在Hibernate框架中,ORM的设计思想得以具体实现。Hibernate主要通过持久化类(*.java)、Hibernate映射文件(*.hbm.xml)和Hibernate配置文件(*.cfg.xml)与数据库进行互交。3数据持久化(1)什么叫持久化?持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。(2)什么叫持久层?持久化层(Persistence Laye

4、r),即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联。(3)为什么要持久化?增加持久层的作用是什么?增加持久化层提高了开发的效率,使软件的体系结构更加清晰,在代码编写和系统维护方面变得更容易。特别是在大型的应用项目中会更有利。数据持久化可以减少访问数据库的次数,增加应用程序执行速度;使代码重用度提高,能够完成大部分数据库操作;使持久化不依赖于底层数据库和上层业务逻辑实现。更换数据库时只需修改配置文件,而不需要修改业务逻辑代码。4Hibernate的常用接口Hibernate的常用接口主要有Configuration接口、SessionFactory接口

5、、Session接口、Transaction接口、Query接口和Criteria接口。这6个核心接口在Hibernate框架中发挥着重要作用,使用这6个接口不仅可以获取数据库连接、对数据进行持久化操作、HQL查询等,而且还可以对事务进行控制。5Hibernate的运行原理Hibernate的运行原理如图7-3所示,具体说明如下:(1)Java应用程序首先调用Configuration类,该类读取Hibernate配置文件和映射文件中的信息。(2)Configuration类利用配置信息和映射信息生成一个SessionFactory对象。(3)SessionFactory对象生成一个Sessi

6、on对象。(4)Session对象生成一个Transaction对象。(5)Session对象通过get()、load()、save()、update()、delete()和savaOrUpdate()等方法对PO(Persistent Objects,持久化对象)进行加载、保存、更新、删除等操作。6Hibernate实例的三种状态Hibernate实例状态分为3种,分别为临时状态(Transient)、持久化状态(Persistent)、脱管状态(Detached)。7持久化类对象关系映射(ORM)是Hibernate的基础,在Hibernate中,持久化类是Hibernate操作的对象,它

7、与数据库中的数据表相对应,描述数据表的结构等信息。在持久化类中,其属性信息与数据表中的字段相匹配。商品持久化类GoodsInfo的定义如表7-1所示,该类中定义了多个商品的基本属性,并提供了相应的getXXX()和setXXX()方法。8Hibernate的映射文件(1)Hibernate映射文件的基本概念Hibernate映射文件是Hibernate的核心文件,用来把持久化对象与数据库中的表、持久化对象之间的关系与数据库表之间的关系、持久化对象的属性与数据表字段一一映射起来。(2)Hibernate映射文件应遵循的规则Hibernate映射文件应遵循以下规则: 映射文件名称和对应的实体类名称

8、一致。 映射文件和对应的实体类保存在同一个位置。 映射文件必须在hibernate.cfg.xml文件中加载,通过标签的resource标签可以实现加载。(3)Hibernate映射文件的元素从表7-2可以看出Hibernate映射文件的根元素为,其他元素嵌入在该根元素中,其常用属性主要有package属性,用于指定包名。通常情况下只有一个元素,每个元素可以有多个子元素。(4)元素的主要属性元素的主要属性如下所示。 name属性。 column属性。 type属性。(5)常用内置主键生成策略元素的子元素用于配置数据表主键的生成策略,通过class属性进行设置。常用内置主键生成策略如下所示。 i

9、ncrement。 identity。 sequence。 hilo。 native。 uuid。 assigned。(6)元素的常用配置属性元素用于配置数据表中字段的属性信息,通过该元素能够详细地对数据表的字段进行描述,其常用配置属性如下所示。 name:指定持久化类中的属性名称。 column:指定数据表中的字段名称。 type:指定数据表中的字段类型。 not-null:指定数据表字段的非空属性,它是一个布尔值。 length:指定数据表中的字段长度。 unique:指定数据表字段值是否唯一,它是一个布尔值。 lazy:设置延迟加载。9Hibernate的配置文件Hibernate配置文

10、件主要用来配置数据库连接参数,例如数据库的驱动程序、URL、用户名和密码等。Hibernate支持两种格式的配置文件:hibernate.cfg.xml和hibernate.properties,两种的配置内容基本相同,但前者的使用稍微方便一些,一般情况下,hibernate.cfg.xml是Hibernate的默认配置文件。hibernate.cfg.xml可以在其子元素中定义用到的xxx.hbm.xml映射文件列表,但使用hibernate.properties则需要在程序中以硬编码方式指明。【操作必备】(1)下载与配置HibernateHibernate官方网站的网址是http:/www

11、.hibernate.org,在该网站上可以获取Hibernate的最新版本的Jar包以及帮助文档,本书所使用的Hibernate开发包为Hibernate 4.1.8版本。(2)下载并安装好数据库管理系统SQL Server 2008。(3)在Microsoft SQL Server 2008中创建数据库ECommerce,并在该数据库中创建“商品数据表”、“商品类型表”和“用户表”。(4)从网上下载Servlet支持类库servlet-api.jar和JDBC支持类库sqljdbc4.jar。(5)准备开发Web应用程序所需的图片文件、CSS样式文件和验证用的Javascript文件。(6

12、)启动Eclipse,设置工作空间为Unit07,然后进入Eclipse的开发环境。(7)在Eclipse集成开发环境中配置与启动Tomcat服务器。(8)新建动态Web项目,命名为task7-X,本单元有8个任务,每个任务创建一个独立的Web项目,命名分别为task7-1至task7-8。(9)在Web项目中创建包,将其命名为“package07X”,本单元各个Web项目中的包分别命名为package071至package078。(10)将Jar包文件servlet-api.jar和sqljdbc4.jar拷贝到各个Web项目的文件夹“WebContentWEB-INFlib”下,并在Ecl

13、ipse集成开发环境的“项目资源管理器”刷新各个Web项目。(11)创建Hibernate的配置文件hibernate.cfg.xml(12)创建Hibernate的初始化类HibernateInitClass【基础应用】【任务7-1】使用Hibernate框架实现手动导出数据表【任务描述】面向对象的编程思想在Hibernate框架中体现得淋漓尽致,它将数据库中的数据表看做是对象,对数据的操作同样以对象的方式进行处理。通过Hibernate框架提供的自动建表技术导出“商品数据表”,且在Eclipse的控制台中输出DDL语句。【任务实施】1配置程序开发环境首先新建动态Web项目task7-1,在

14、该项目中创建包package071。然后按照【操作必备】中介绍的方法导入Hibernate支持类库、Servlet支持类库servlet-api.jar、数据库驱动包sqljdbc4.jar,创建Hibernate的配置文件hibernate.cfg.xml文件,创建Hibernate的初始化类HibernateInitClass。2创建商品实体类(持久化类)在包package071中创建商品实体类,将该实体命名为GoodsInfo,该类封装了商品的详细信息,代码如表7-1所示。3创建商品实体对象的映射文件goods.hbm.xml在Eclipse的【项目资源管理器】的子文件夹“src”中创建

15、一个映射文件goods.hbm.xml,该映射文件将GoodsInfo实体对象映射为“商品数据表”,并设置了主键的生成策略为identity。代码如表7-2所示。4创建Servlet类Servlet071在包package071中创建一个Servlet类,将其命名为“Servlet071”,该类用于处理JSP页面所提交的请求,通过doGet()方法对请求进行处理,该方法的代码如表7-5所示。5创建JSP页面task7-1.jsp在Web项目task7-1中创建名为“task7-1.jsp”的JSP页面,该页面用于将当前页面的请求转发给Servlet对象Servlet071,其代码如下所示。6运

16、行程序输出结果运行JSP页面task7-1.jsp,在页面中显示“导出数据成功!”的提示信息,同时在Eclipse的控制台中输出DDL语句,如图7-5所示。【任务7-2】使用Hibernate框架查询用户数据【任务描述】Hibernate框架对JDBC做了轻量级的封装,使用Hibernate对数据进行操作时,不必再编写繁琐的JDBC代码,使用Hibernate框架查询“Ecommerce”数据库的“用户表”中指定“用户ID”的用户数据。【任务实施】1配置程序开发环境首先新建动态Web项目task7-2,在该项目中创建包package072。然后按照【操作必备】中介绍的方法导入Hibernate

17、支持类库、Servlet支持类库servlet-api.jar、数据库驱动包sqljdbc4.jar,创建Hibernate的配置文件hibernate.cfg.xml文件。2创建用户实体类(持久化类)在包package072中创建用户实体类,将该实体命名为UserInfo,该类封装了用户的详细信息,代码如表7-6所示。3创建用户实体对象的映射文件user.hbm.xml在Eclipse的【项目资源管理器】的子文件夹“src”中创建一个映射文件user.hbm.xml,该映射文件将UserInfo实体对象映射为“用户表”,并设置了主键的生成策略为native。映射文件的主要代码如表7-7所示。

18、4创建Servlet类UserServlet072在包package072中创建一个Servlet类,将其命名为“UserServlet072”,该类用于处理JSP页面所提交的请求,通过doGet()方法对请求进行处理,该方法的代码如表7-8所示。5创建JSP页面task7-2.jsp在Web项目task7-1中创建名为“task7-2.jsp”的JSP页面,该页面用于将当前页面的请求转发给Servlet对象UserServlet072,其代码如下所示。6运行程序输出结果运行JSP页面task7-2.jsp,其运行结果如图7-7所示。图7-7JSP页面task7-2.jsp的运行结果【任务7-

19、3】使用Hibernate框架修改与新增商品数据【任务描述】(1)使用Hibernate框架对“Ecommerce”数据库的“商品数据表”中指定“商品ID”的数据进行修改。(2)使用Hibernate框架在“Ecommerce”数据库的“商品数据表”中新增商品数据。【任务实施】1配置程序开发环境首先新建动态Web项目task7-3,在该项目中创建包package073。然后按照【操作必备】中介绍的方法导入Hibernate支持类库、Servlet支持类库servlet-api.jar、数据库驱动包sqljdbc4.jar,创建Hibernate的配置文件hibernate.cfg.xml文件。

20、2创建商品实体类(持久化类)在包package073中创建用户实体类,将该实体命名为GoodsInfo,该类封装了商品的详细信息,代码如表7-1所示。3创建商品实体对象的映射文件goods.hbm.xml在Eclipse的【项目资源管理器】的子文件夹“src”中创建一个映射文件goods.hbm.xml,该映射文件将GoodsInfo实体对象映射为“商品数据表”,并设置了主键的生成策略为identity。映射文件的主要代码如表7-2所示。4创建JSP页面message.jsp在Web项目task7-3中创建名称为“message.jsp”的JSP页面,该页面用于显示商品数据修改和新增成功的提示

21、信息,并提供查看商品数据修改结果的超链接,代码如下所示。$message查看商品数据的修改结果5创建Java类GoodsInfoManage在包package073中创建一个类,将其命名为“GoodsInfoManage”,该类用于封装与商品对象相关的数据库操作,包括查询商品数据、修改商品数据和新增商品数据的方法,其名称分别为getGoodsById ()、updateInfo()和saveInfo(),该类的代码如表7-9所示。6实现商品数据的修改操作修改商品数据的操作流程如图7-9所示。(1)创建Servlet类UpdateInfoServlet(2)创建JSP页面updateInfo7-

22、31.jsp在Web项目task7-3中创建名为“updateInfo7-31.jsp”的JSP页面,该页面提供了修改商品数据的表单,其主要代码如表7-11所示。(3)创建Servlet类GetInfoServlet在包package073中创建一个Servlet类,将其命名为“GetInfoServlet”,该类用于加载商品数据,在加载商品数据后将页面转发到updateInfo7-31.jsp页面,通过doGet()方法完成数据加载与页面转向等操作,该方法的代码如表7-12所示。(4)创建JSP页面task7-31.jsp在Web项目task7-3中创建名为“task7-31.jsp”的JS

23、P页面,该页面用于将当前页面的请求转发给Servlet对象GetInfoServlet,其代码如下所示。(5)运行程序输出结果运行JSP页面task7-31.jsp,其运行结果如图7-10所示。将“库存数量”文本框中的1000修改为200,然后单击【更新】按钮,转到message.jsp页面,如图7-11所示。图7-11成功修改商品数据后的message.jsp页面在message.jsp页面中单击“查看修改数据的结果”超链接,再一次打开JSP页面task7-31.jsp,可以发现“库存数量”已成功修改为200。7实现商品数据的新增操作(1)创建Servlet类AddInfoServlet在包

24、package073中创建一个Servlet类,将其命名为“AddInfoServlet”,该类用于处理新增商品数据的请求,该Servlet类对新增的商品数据进行了封装,通过doPost()方法完成数据封装与保存等操作,并调用了GoodsInfoManage类的saveInfo()方法对商品数据完成新增操作,该方法的代码如表7-13所示。(2)创建JSP页面task7-32.jsp在Web项目task7-3中创建名为“task7-32.jsp”的JSP页面,该页面提供了新增商品数据的表单,其主要代码如表7-14所示。(3)运行程序输出结果运行JSP页面task7-32.jsp,显示新增商品数据

25、的表单,在各个文本框中输入对应的商品数据,其结果如图7-12所示。然后单击【保存】按钮,转到message.jsp页面,如图7-13所示。图7-13成功新增商品数据后的message.jsp页面【任务7-4】使用Hibernate框架和HQL查询语言查询商品数据【任务描述】(1)使用Hibernate框架和HQL查询语言从“Ecommerce”数据库的“商品数据表”中查询指定“商品ID”的一条商品数据。(2)使用Hibernate框架和HQL查询语言从“Ecommerce”数据库的“商品数据表”中查询满足给定条件的商品数据。【任务实施】1配置程序开发环境首先新建动态Web项目task7-4,在

26、该项目中创建包package074。然后按照【操作必备】中介绍的方法导入Hibernate支持类库、Servlet支持类库servlet-api.jar、数据库驱动包sqljdbc4.jar,创建Hibernate的配置文件hibernate.cfg.xml文件。2创建商品实体类(持久化类)在包package074中创建用户实体类,将该实体命名为GoodsInfo,该类封装了商品的详细信息,代码如表7-1所示。3创建商品实体对象的映射文件goods.hbm.xml在Eclipse的【项目资源管理器】的子文件夹“src”中创建一个映射文件goods.hbm.xml,该映射文件将GoodsInfo

27、实体对象映射为“商品数据表”,并设置了主键的生成策略为identity。映射文件的主要代码如表7-2所示。4从“商品数据表”中查询指定“商品ID”的一条商品数据(1)创建Servlet类GoodsInfoServlet7_41在package074创建一个Servlet类,将其命名为“GoodsInfoServlet7_41”,该类通过doGet()方法实现从“商品数据表”中查询指定“商品ID”的一条商品数据,该方法的代码如表7-15所示。(2)创建JSP页面task7-41.jsp在Web项目task7-4中创建名称为“task7-41.jsp”的JSP页面,该页面用于将当前页面的请求转发给

28、Servlet对象GoodsInfoServlet7_41,其代码如下所示。(3)运行程序输出结果运行JSP页面task7-41.jsp,其结果如图7-14所示。图7-14task7-41.jsp页面的运行结果5从“商品数据表”中查询满足给定条件的商品数据(1)创建Java类GetGoodsInfo074在包package074中创建一个Java类,将其命名为“GetGoodsInfo074”,该类中定义的方法getGoodsInfo()用于从“商品数据表”中获取满足给定条件的商品数据,该类的代码如表7-16所示。(2)创建JSP页面printGoodsInfo7-4.jsp在Web项目tas

29、k7-4中创建名称为“printGoodsInfo7-4.jsp”的JSP页面,该页面用于显示所查询的商品数据,其主要代码如表7-17所示。(3)创建Servlet类GoodsInfoServlet7_42在package074创建一个Servlet类,将其命名为“GoodsInfoServlet7_42”,该类在doGet()方法中调用GetGoodsInfo074类的getGoodsInfo()方法从“商品数据表”中获取满足给定条件的商品数据,然后转发到printGoodsInfo7-4.jsp页面,该方法的代码如表7-18所示。(4)创建JSP页面task7-42.jsp在Web项目ta

30、sk7-4中创建名称为“task7-42.jsp”的JSP页面,该页面用于将当前页面的请求转发给Servlet对象GoodsInfoServlet7_42,其代码如下所示。(5)运行程序输出结果运行JSP页面task7-42.jsp,其结果如图7-15所示。【渐进应用】【任务7-5】使用Hibernate框架和HQL查询语言实现用户登录【任务描述】使用Hibernate框架和HQL查询语言实现用户登录功能,并区别超级用户或普通用户。【任务实施】1配置程序开发环境首先新建动态Web项目task7-5,在该项目中创建包package075。然后按照【操作必备】中介绍的方法导入Hibernate支持类库、Servlet支持类库servlet-api.jar、数据库驱动包sqljdbc4.jar,创建Hibernate的配置文件hibernate.cfg.xml文件。2创建用户实体类(持久化类)在包package075中创建

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1