07单元7基于Hibernate的Web应用程序开发(校).doc_第1页
07单元7基于Hibernate的Web应用程序开发(校).doc_第2页
07单元7基于Hibernate的Web应用程序开发(校).doc_第3页
07单元7基于Hibernate的Web应用程序开发(校).doc_第4页
07单元7基于Hibernate的Web应用程序开发(校).doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

单元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访问数据库的不同点【问题3】Hibernate的持久化层与应用程序的三层结构的关系如何?【知识必备】1Hibernate简介Hibernate是一个开源的持久层框架,Hibernate就是位于数据库和应用程序之间的各种ORM中间件。Hibernate是一种Java语言下的对象关系映射解决方案,它是一种自由、开源的软件。它用来把对象模型表示的对象映射到基于SQL的关系模型结构中,为面向对象的领域模型到传统的关系型模型库的映射提供了一个使用方便的框架。Hibernate封装了数据库的访问细节,并一直维护着实体类与关系型数据库中数据表之间的映射关系,业务处理可以通过Hibernate提供的API接口进行数据库操作。2对象关系映射对象关系映射(Object Relational Mapping,ORM)是一种为了解决面向对象与关系数据库的相互匹配的技术,是随着面向对象的软件开发方法发展而产生的。在Hibernate框架中,ORM的设计思想得以具体实现。Hibernate主要通过持久化类(*.java)、Hibernate映射文件(*.hbm.xml)和Hibernate配置文件(*.cfg.xml)与数据库进行互交。3数据持久化(1)什么叫持久化?持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。(2)什么叫持久层?持久化层(Persistence Layer),即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联。(3)为什么要持久化?增加持久层的作用是什么?增加持久化层提高了开发的效率,使软件的体系结构更加清晰,在代码编写和系统维护方面变得更容易。特别是在大型的应用项目中会更有利。数据持久化可以减少访问数据库的次数,增加应用程序执行速度;使代码重用度提高,能够完成大部分数据库操作;使持久化不依赖于底层数据库和上层业务逻辑实现。更换数据库时只需修改配置文件,而不需要修改业务逻辑代码。4Hibernate的常用接口Hibernate的常用接口主要有Configuration接口、SessionFactory接口、Session接口、Transaction接口、Query接口和Criteria接口。这6个核心接口在Hibernate框架中发挥着重要作用,使用这6个接口不仅可以获取数据库连接、对数据进行持久化操作、HQL查询等,而且还可以对事务进行控制。5Hibernate的运行原理Hibernate的运行原理如图7-3所示,具体说明如下:(1)Java应用程序首先调用Configuration类,该类读取Hibernate配置文件和映射文件中的信息。(2)Configuration类利用配置信息和映射信息生成一个SessionFactory对象。(3)SessionFactory对象生成一个Session对象。(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操作的对象,它与数据库中的数据表相对应,描述数据表的结构等信息。在持久化类中,其属性信息与数据表中的字段相匹配。商品持久化类GoodsInfo的定义如表7-1所示,该类中定义了多个商品的基本属性,并提供了相应的getXXX()和setXXX()方法。8Hibernate的映射文件(1)Hibernate映射文件的基本概念Hibernate映射文件是Hibernate的核心文件,用来把持久化对象与数据库中的表、持久化对象之间的关系与数据库表之间的关系、持久化对象的属性与数据表字段一一映射起来。(2)Hibernate映射文件应遵循的规则Hibernate映射文件应遵循以下规则: 映射文件名称和对应的实体类名称一致。 映射文件和对应的实体类保存在同一个位置。 映射文件必须在hibernate.cfg.xml文件中加载,通过标签的resource标签可以实现加载。(3)Hibernate映射文件的元素从表7-2可以看出Hibernate映射文件的根元素为,其他元素嵌入在该根元素中,其常用属性主要有package属性,用于指定包名。通常情况下只有一个元素,每个元素可以有多个子元素。(4)元素的主要属性元素的主要属性如下所示。 name属性。 column属性。 type属性。(5)常用内置主键生成策略元素的子元素用于配置数据表主键的生成策略,通过class属性进行设置。常用内置主键生成策略如下所示。 increment。 identity。 sequence。 hilo。 native。 uuid。 assigned。(6)元素的常用配置属性元素用于配置数据表中字段的属性信息,通过该元素能够详细地对数据表的字段进行描述,其常用配置属性如下所示。 name:指定持久化类中的属性名称。 column:指定数据表中的字段名称。 type:指定数据表中的字段类型。 not-null:指定数据表字段的非空属性,它是一个布尔值。 length:指定数据表中的字段长度。 unique:指定数据表字段值是否唯一,它是一个布尔值。 lazy:设置延迟加载。9Hibernate的配置文件Hibernate配置文件主要用来配置数据库连接参数,例如数据库的驱动程序、URL、用户名和密码等。Hibernate支持两种格式的配置文件:hibernate.cfg.xml和perties,两种的配置内容基本相同,但前者的使用稍微方便一些,一般情况下,hibernate.cfg.xml是Hibernate的默认配置文件。hibernate.cfg.xml可以在其子元素中定义用到的xxx.hbm.xml映射文件列表,但使用perties则需要在程序中以硬编码方式指明。【操作必备】(1)下载与配置HibernateHibernate官方网站的网址是,在该网站上可以获取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)启动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”下,并在Eclipse集成开发环境的“项目资源管理器”刷新各个Web项目。(11)创建Hibernate的配置文件hibernate.cfg.xml(12)创建Hibernate的初始化类HibernateInitClass【基础应用】【任务7-1】使用Hibernate框架实现手动导出数据表【任务描述】面向对象的编程思想在Hibernate框架中体现得淋漓尽致,它将数据库中的数据表看做是对象,对数据的操作同样以对象的方式进行处理。通过Hibernate框架提供的自动建表技术导出“商品数据表”,且在Eclipse的控制台中输出DDL语句。【任务实施】1配置程序开发环境首先新建动态Web项目task7-1,在该项目中创建包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”中创建一个映射文件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运行程序输出结果运行JSP页面task7-1.jsp,在页面中显示“导出数据成功!”的提示信息,同时在Eclipse的控制台中输出DDL语句,如图7-5所示。【任务7-2】使用Hibernate框架查询用户数据【任务描述】Hibernate框架对JDBC做了轻量级的封装,使用Hibernate对数据进行操作时,不必再编写繁琐的JDBC代码,使用Hibernate框架查询“Ecommerce”数据库的“用户表”中指定“用户ID”的用户数据。【任务实施】1配置程序开发环境首先新建动态Web项目task7-2,在该项目中创建包package072。然后按照【操作必备】中介绍的方法导入Hibernate支持类库、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所示。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-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文件。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页面,该页面用于显示商品数据修改和新增成功的提示信息,并提供查看商品数据修改结果的超链接,代码如下所示。$message查看商品数据的修改结果5创建Java类GoodsInfoManage在包package073中创建一个类,将其命名为“GoodsInfoManage”,该类用于封装与商品对象相关的数据库操作,包括查询商品数据、修改商品数据和新增商品数据的方法,其名称分别为getGoodsById ()、updateInfo()和saveInfo(),该类的代码如表7-9所示。6实现商品数据的修改操作修改商品数据的操作流程如图7-9所示。(1)创建Servlet类UpdateInfoServlet(2)创建JSP页面updateInfo7-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”的JSP页面,该页面用于将当前页面的请求转发给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在包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,显示新增商品数据的表单,在各个文本框中输入对应的商品数据,其结果如图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,在该项目中创建包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实体对象映射为“商品数据表”,并设置了主键的生成策略为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页面,该页面用于将当前页面的请求转发给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项目task7-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项目task7-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中创建用户实体类,将该实体命名为UserInfo,该类封装了用户的详细信息,其代码在表7-6所示代码的基础上新增了获取“用户类型”的属性userType以及对应的setXXX()方法和getXXX()方法。3创建用户实体对象的映射文件user.hbm.xml在Eclipse的【项目资源管理器】的子文件夹“src”中创建一个映射文件user.hbm.xml,该映射文件将UserInfo实体对象映射为“用户表”,并设置了主键的生成策略为native。映射文件的主要代码如表7-7所示,新增了如下映射“用户类型”的代码。property name=userType column=用户类型 type=string length=20/property4创建Java类UserManage在包package075中创建一个类,将其命名为“UserManage”,在该类中定义按用户名和密码查询用户对象的getUser()方法,该类的代码如表7-19所示。5创建Servlet类UserServlet在package075创建一个Servlet类,将其命名为“UserServlet”,该类在doPost()方法中调用UserManage类的getUser()方法从“用户表”中查询满足给定条件的用户,然后转发到message.jsp页面,该方法的代码如表7-20所示。6创建JSP页面message.jsp在Web项目task7-5中创建名为“message.jsp”的JSP页面,该页面用于显示用户登录的提示信息,代码如下所示。$message7创建用户登录的JSP页面login7-5.jsp在Web项目task7-5中创建名为“login7-5.jsp”的JSP页面,该页面的主要代码与表4-7所示的代码相似,只是将action属性设置为“UserServlet”。8运行程序输出结果运行JSP页面login7-5.jsp,显示用户登录页面,在“用户名”文本框中输入“administrator”,在“密码”输入框中输入“123456”,然后单击【登录】按钮,跳转到页面message.jsp,显示“管理员administrator:你好!”的提示信息。【任务7-6】使用Hibernate框架和HQL查询语言实现用户注册【任务描述】用户注册是Web应用中常用的模块,用户注册实质就是对用户信息进行持久化的过程,将用户信息封装为一个实体对象,而持久化过程使用Hibernate框架进行实现。使用Hibernate框架和HQL查询语言实现用户注册功能,并要求判断用户注册的用户名是否已注册过。【任务实施】1配置程序开发环境首先新建动态Web项目task7-6,在该项目中创建包package076。然后按照【操作必备】中介绍的方法导入Hibernate支持类库、Servlet支持类库servlet-api.jar、数据库驱动包sqljdbc4.jar,创建Hibernate的配置文件hibernate.cfg.xml文件。2创建用户实体类(持久化类)在包package076中创建用户实体类,将该实体命名为UserInfo,该类封装了用户的详细信息,其代码如表7-6所示。3创建用户实体对象的映射文件user.hbm.xml在Eclipse的【项目资源管理器】的子文件夹“src”中创建一个映射文件user.hbm.xml,该映射文件将UserInfo实体对象映射为“用户表”,并设置了主键的生成策略为native。映射文件的主要代码如表7-7所示。4创建Java类UserManage在包package076中创建一个类,将其命名为“UserManage”,在该类中定义了两个方法findUserByName()和saveUser(),其中findUserByName()方法用于判断用户注册的用户名是否已存在,saveUser()方法用于将用户注册信息持久化到数据库中,该类的代码如表7-21所示。5创建Servlet类UserServlet076在package076创建一个Servlet类,将其命名为“UserServlet076”,该类用于处理JSP页面所提交的用户注册请求,在doPost()方法中调用UserManage类的getUser()方法从“用户表”中查询满足给定条件的用户,然后转发到message.jsp页面,该方法的代码如表7-22所示。6创建JSP页面message.jsp在Web项目task7-6中创建名为“message.jsp”的JSP页面,该页面用于显示用户登录的提示信息,代码如下所示。$message7创建用户登录的JSP页面register7-6.jsp在Web项目task7-6中创建名为“register7-6.jsp”的JSP页面,该页面的主要代码与表2-16所示的代码相似,只是将action属性设置为“UserServlet076”。8运行程序输出结果运行JSP页面register7-6.jsp,显示用户注册页面,在“用户名”文本框中输入“admin7”,在“密码”输入框中输入“123456”,在“邮箱地址”文本框中输入“123456”,如图7-16所示。然后单击【注册】按钮提交表单数据,所提交的数据交给UserServlet076类进行处理,在页面中显示“注册成功!”的提示信息。图7-16在用户注册页面中输入注册信息如果在“用户名”文本框中输入“admin”,其他的输入内容不变,然后单击【注册】按钮提交表单数据,在页面中将显示“您注册的用户名已存在!”的提示信息。【典型应用】【任务7-7】使用Hibernate框架和HQL查询语言内连查询并显示商品数据【任务描述】内连接查询可以对多个数据表中的数据进行联合操作,使用Hibernate框架和HQL查询语言通过内连接查询分别从“商品数据表”与“商品类型表”中查询部分数据,并在JSP页面中显示查询结果。【任务实施】1配置程序开发环境首先新建动态Web项目task7-7,在该项目中创建包package077。然后按照【操作必备】中介绍的方法导入Hibernate支持类库、Servlet支持类库servlet-api.jar、数据库驱动包sqljdbc4.jar,创建Hibernate的配置文件hibernate.cfg.xml文件。2创建商品类型实体类(持久化类)在包package077中创建商品类型实体类,将该实体命名为GoodsCategory,该类封装了商品类型的详细信息,其代码如表7-23所示的代码。3创建商品实体类(持久化类)在包package077中创建商品实体类,将该实体命名为GoodsInfo,该类封装了商品的详细信息,其代码在表7-1的基础上新增了表7-24所示的代码。4创建商品类型实体对象的映射文件category.hbm.xml在Eclipse的【项目资源管理器】的子文件夹“src”中创建一个映射文件category.hbm.xml,该映射文件将GoodsCategory实体对象映射为“商品类型表”,并设置了主键的生成策略为identity。映射文件的主要代码如表7-25所示。5创建实体对象的映射文件goods.hbm.xml在Eclipse的【项目资源管理器】的子文件夹“src”中创建一个映射文件goods.hbm.xml,该映射文件将GoodsInfo实体对象映射为“商品数据表”,设置主键的生成策略为uuid。在“商品类型表”与“商品数据表”之间建立了多对一的关系,映射文件的主要代码如表7-26所示。6创建Java类GoodsInfoManage在包package077中创建一个类,将其命名为“GoodsInfoManage”,该类用于封装与商品对象有关的数据库操作。在该类中定义了方法getGoodsInfo(),该方法通过内连接查询商品数据与所属商品类型数据,该类的代码如表7-27所示。7创建Servlet类GetInfoServlet在package077创建一个Servlet类,将其命名为“GetInfoServlet”,该类用于处理查询商品信息的请求,在doGet()方法中调用GoodsInfoManage类的getGoodsInfo()方法对查询请求进行处理,然后转发到printGoodsInfo7-7.jsp页面,该方法的代码如表7-28所示。8创建JSP页面message.jsp在Web项目task7-7中创建名为“message.jsp”的JSP页面,该页面用于显示查询商品信息的提示信息,代码如下所示。$message9创建JSP页面printGoodsInfo7-7.jsp在Web项目task7-7中创建名为“printGoodsInfo7-7.jsp”的JSP页面,该页面用于显示商品数据列表,使用JSTL标签与EL表达式获取商品对象,其代码如表7-29所示。由于是对多表的联合操作,在获取持久化对象的属性时,JSTL标签以数组方式进行读取。10创建JSP页面task7-7.jsp在Web项目task7-7中创建名为“task7-7.jsp”的JSP页面,该页面用于将当前页面的请求转发给Servlet对象GetInfoServlet,其代码如下所示。11运行程序输出结果运行JSP页面task7-7.jsp,内连接查询商品数据的运行结果如图7-17所示。图7-17内连接查询商品数据的运行结果【任务7-8】使用Hibernate框架和HQL查询语言实现多对一单向映射的数据查询与添加【任务描述】商品与商品类型之间是典型的多对一的关系,多种商品对应同一种类型。使用Hibernate框架和HQL查询语言实现多对一单向映射的数据查询与添加,在商品与商品类型之间建立多对一的关系,然后录入商品数据,接着通过JSP页面显示所有已录入的商品数据。【任务实施】1配置程序开发环境首先新建动态Web项目task7-8,在该项目中创建包package078。然后按照【操作必备】中介绍的方法导入Hibernate支持类库、Servlet支持类库servlet-api.jar、数据库驱动包sqljdbc4.jar,创建Hibernate的配置文件hibernate.cfg.xml文件。2创建商

温馨提示

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

评论

0/150

提交评论