您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 基于Struts+Hibernate+Spring的Web 应用开发
基于Struts+Hibernate+Spring的Web应用开发——JavaWeb应用开发实训指导书(Hibernate和Spring是新的知识点,先单独强化,然后再整合训练)实训内容安排:任务一:Hibernate(10课时)该任务包括两个部分内容一是Hibernate的基础知识,二是实际完成一个Hibernate应用。要求:掌握Hibernate的基础知识,掌握开发Hibernate应用的方法。任务二:Sping(10课时)该任务包括两个部分内容一是介绍Spring的基础知识,二是完成一个Spirng应用。要求:掌握Spring的基础知识,掌握开发Spirng应用的方法。任务三:Hibernate和Spring的联合开发(8课时)使用Hibernate和Spring框架完成Java应用开发要求:掌握使用Hibernate和Spring框架开发Java应用程序的过程。任务四:基于Struts+Hibernate+Spring的网上购物系统开发(28课时)结合Hibernate和Spring改写《JavaWeb应用开发项目教程》的前台要求:掌握使用Struts+Hibernate+Spring框架开发网上购物系统的方法实训要求:1.每位同学独立完成2.每部分内容按时提交代码和学习报告(总成绩由每次的节点成绩统计获得)软件环境需求:1.操作系统:WindowsXP2.数据库及驱动程序:MicrosoftSQLServer2005JDBC3.JDK:JDK64.IDE:MyEclipse7.05.服务器:Tomcat6.0任务一Hibernate1.1Hibernate基础知识1.Hibernate简介Hibernate是一种Java语言下的对象-关系映射解决方案,它是一种自由、开源的轻量级框架,用于将面向对象的对象模型映射到传统的关系数据库中。Hibernate对JDBC进行了轻量级的对象封装,不仅提供从Java数据类型到SQL数据类型的ORM映射,还提供数据查询和数据缓存功能,大幅度减少开发时人工使用SQL和JDBC处理数据的时间,使得Java程序员可以完全使用面向对象的编程思维通过HibernataAPI操作关系数据库。Hibernate还拥有完全面向对象的查询语言HQL。因此,Hibernate将开发者从传统的数据库编程中解脱出来,为数据库外加了一层面向对象的外衣,这样开发人员不需要再编写繁琐的SQL语句,Java程序中所有对数据的操作都会交给Hibernate处理和完成。Hibernate为轻量级的ORM开源框架,因此它兼具了轻量级框架技术和对象-关系映射技术的特点:⑴Hibernate是开放源代码的,允许开发人员在需要的时候研究源代码、改写源代码,并且具有详细的参考文档,便于学习和掌握。⑵简单灵活且易于扩展,Hibernate不像EJB那样需要很多的类和配置属性,它只需一个运行阶段的配置文件以及为每个要持久化的应用对象指定映射文件。另外Hibernate框架无侵入性,应用程序不需要依赖该框架,不需要继承Hibernate中的类和其中特定的语义,只需创建Java对象和相关的映射文件,将持久化对象的工作交给Hibernate。⑶对容器的不依赖性。Hibernate不同于EJB,Hibernate不需要特殊的容器,Hibernate可用于任何环境,从独立应用到企业应用服务器。⑷Hibernate框架封装了数据库持久层的大多数技术细节,如数据库连接、事务管理、SQL语句生成等。持久层中大多数的编码都是些重复的工作,使用Hibernate框架可以将开发人员从大量重复的JDBC编码和SQL语句中解脱出来。⑸面向对象的设计。Hibernate支持所有的面向对象特性,包括继承、多态、自定义对象类型和集合。Hibernate还提供了面向对象的HQL语言,Hibernate框架自动将HQL语句编译成数据库特定的SQL语句,并缓存起来以便复用。Hibernate中的映射机制将对象映射到了数据库表中,从而使得开发人员可以以面向对象的思想来操作关系数据库,而无需考虑关系数据库中的细节。⑹性能优秀。Hibernate实现了很多持久层的机制,如数据缓存机制、对多种连接池的支持、批处理的优化机制以及延迟加载机制。这些机制的实现对上层完全屏蔽,以可配置化的方式提供,开发人员无需关心其实现细节,只需添加配置项就可使用。正确地使用这些机制可以大幅度提高系统的性能。⑺Hibernate可以与多种Web服务器、应用服务器良好集成,并且支持几乎所有流行的数据库服务器,并具有很好的移植性,只需要简单的修改配置文件,即可实现数据库之间的切换。2.对象-关系映射对象-关系映射是Hibernate框架中的理论基础。对象-关系映射即将数据库中的关系表映射为持久化类,从而将对数据库表中的操作转换为对持久化类及其属性的操作,使得数据的操作和管理分离。第一章介绍过对象模型和关系模型之间存在阻抗不匹配。因此在持久层的设计时,需要将对象的状态映射到关系数据库的数据上,以便提供透明的持久化,对象-关系映射在这里充当的就是这两个模型之间的桥梁作用,来解决不匹配。通常,对象模型中的持久化类会对应关系数据库中的表,而每个类的实例化对应着表中的一行,即一条记录,如表。对象-关系映射面向对象概念面向关系概念类表对象表的行(记录)属性表的列(字段)从表2-1中看到,类直接映射成数据库中的表,其中类的属性对应成数据库的列,而类的实例化对象对应到数据库中的记录。这样以后程序开发过程中需要操作数据表时,只需操作相应类的实例,而不必关心所操作的数据表。归纳起来,映射的基本原则如下:对象模型中的类映射成数据库中的表对象模型中的对象标识符映射成表中的主键。对象模型中的类属性映射成数据库表中的列(字段)。对象模型中的属性类型映射成表中的域。对象模型中的类继承和关联关系映射成数据库中的多个相关表。应当注意,由于对象模型和关系模型的原则不一样,因此对象模型中的类和关系模型中的表并不一定是一一对应的。同样,类的属性和表的字段也不一定是一一对应的。在Hibernate中,使用元数据来描述对象-关系映射,在XML映射文件定义实体类和数据表之间的关系,将对象自动持久化到关系数据库中采用XML文件配置对象-关系具有以下优点:软件人员可以独立设计成域模型,不必强迫遵守任何规范。数据库设计人员可以独立设计数据模型,不必强迫遵守任何规范。对象-关系映射不依赖于任何程序代码,如果需要修改对象-关系映射,只要修改XML配置文件,不需要修改任何程序,提高了软件的灵活性,并且使维护更加方便。XML文件定义了对象-关系映射Hibernate中使用的持久化类为普通的JavaBean(即POJO),并为映射的属性提供两种方法访问:通过相应的get和set方法访问。使用Java反射机制访问。使用JavaBean同时也简化了Hibernate通过Java反射机制来获得持久化类访问方法的过程。持久化类的访问1.2Hibernate应用开发流程本节中介绍如何使用MyEclipse创建一个Hibernate应用开发步骤:创建工程切换到MyEclipseDatabaseExplorer透视图在MyEclipseDatabaseExplorer透视图中完成数据连接并测试数据连接的正确性为工程增加Hibernate支持生成HibernateSessionFactory类创建数据表USERINFO(Stringuserid,Stringpassword,Stringusername,Stringemail,Stringaddress,Stringtelephone)根据数据表USERINFO生成POJO和映射文件测试HQL编写测试文件,测试使用Hibernate生成类1.先创建一个Java应用hibernate12.切换到MyEclipseDatabaseExplorer透视图点击图标点击MyEclipseDatabaseExplorer打开透视图如下图在这个透视图中我们可以完成连接数据库的操作3.连接数据库点击图标打开如下的菜单点击“New”弹出下面对话框,添加一个新的连接。选择Drivertemplate为MicrosoftSQLServer2005Drivername为:sqlserver2005(这里的命名是任意的)ConnectionURL:jdbc:sqlserver://localhost:1433;databaseName=test(这里的test是数据库名称,修改为你自己的数据库名)Username和Password分别是数据库的用户名和密码单击“AddJARs”添加数据库驱动程序(这里需要我们事先下载好相应的数据库驱动程序)注:点击“TestDriver”可以测试连接点击“Next”选择将要展示的数据表,可以选择展示所以得用户表或者部分表。点击“Finish”完成数据库连接配置,结果如下:显示连接sqlserver2005创建成功在图标sqlserver2005上点击右键:单击“Openconnection”弹出对话框填写密码后单击“OK”连接连接成功显示:可以查看连接数据库的表。在该视图中可以执行SQL语句如下图所示打开执行SQL语句窗口SQLEditor窗口中可以执行SQL语句点击将显示SQL语句的结果前面的步骤中已经完成一个JavaProject工程的创建,设置了dababaseexplorer透视图的参数,并利用该视图完成数据库操作的测试。下面完成Hibernate工程的创建。切换至java透视图4.为工程增加Hibernate支持打开如下图所示的设置页面,选择Hibernte3.1,其它的采用默认选项。使用默认选项下一步后出现下图设置页面,为Hibernate指定数据库连接属性,DBDriver中选择databaseexplorer里已经设置的连接sqlserver2005。设置用户名和密码。按Next进入下一步如下图:注:生成HibernateSessionFactory,这个类不是Hibernate范围的类,而是MyEclipse为了帮助我们使用Hibernate而提供的一个工具类。帮助我们获取到Hibernate中的session对象。设置HibernateSessionFactory类的创建位置,在Javapackage的右边点击“New”创建一个新的包com.njcit.hibernate如下图所示。单击“Finish”后回到设置页面如下图:JavaComplianceLevel采用默认选项Java5,点击Finish完成操作。工程添加Hibernate支持后的文档结构如下图:5、创建POLO:(针对表通过逆向工程产生POLO类和映射文件)切换到databaseexplorer视图打开Connectedtosqlserver2005-test-dbo-TABLE,在TABLE中找到表USERINFO,在USERINFO中单击右键选择“HibernateReverseEngineering”(Hibernate逆向工程)如下图:打开POLO类创建页面如下:选择Javasrcfolder(Java源文件存放位置)和Javapackage勾选“CreatePOJODBTablemappinginformation”自动生成映射文件勾选“JavaDataObject(POJODBTable)”自动生成POJO类如图,其它采用默认选项。单击”Next”进入下一步如图此处采用默认设置单击“Next”进入下一步。采用默认配置,单击Finish完成。回到Javaperspective(Java视图),展开工程视图看到刚才的创建过程添加了Userinfo.java和Userinfo.hbm.xml,并修改了hibernate.cfg.xml配置文件。可以分别查看已经生成的POJO类:Userinfo.java映射文件:Userinfo.hbm.xml修改过的配置文件:
本文标题:基于Struts+Hibernate+Spring的Web 应用开发
链接地址:https://www.777doc.com/doc-4312209 .html