(一)Struts2和Hibernate整合实训指导书.doc_第1页
(一)Struts2和Hibernate整合实训指导书.doc_第2页
(一)Struts2和Hibernate整合实训指导书.doc_第3页
(一)Struts2和Hibernate整合实训指导书.doc_第4页
(一)Struts2和Hibernate整合实训指导书.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

实验五 Struts2和Hibernate3整合应用一、目的和要求本实验是为了让学生对持久化技术有一个初步了解,并熟悉在Eclipse + Hibernate的集成环境下,如何建立一个持久化技术的简单的应用。通过本实验1 掌握在企业Java应用开发中Struts的作用;2 熟悉在Eclipse+MyEclipse环境中综合使用Hibernate和Struts的方法和步骤;3 掌握Hibernate的核心思想。4 掌握Struts和Hibernate整合思想。二、实验内容创建数据库test,在数据库中创建一张表users,包括id,username和password,通过hibernate建立与表users对应的类Users。在Struts框架创建的index.jsp的表单中输入users信息,将此信息转换成一个对象,通过struts的action将对象存入数据库中。三、实验原理简介持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘),持久化的主要应用是将内存中的数据存储在关系型的数据库中。要在Hibernate中实现数据的持久化,就是要建立对象中的属性与数据库中的表的映射关系,具体实现是利用两个xml配置文件,在其中的一个hibernate.cfg.xml文件中指定了数据库的连接的相关参数和映射文件的名称,而另一个文件*.hbm.xml(在此例中为users.hbm.xml)定义了对象(Users.class)中的属性与数据库表(Users)中的字段的对应关系。这样当对象中的方法(在此例中对象的方法定义在Users.java中)对对象中的某些属性进行操作的时候,属性在数据库中对应的字段也就相应的发生了改变。四、实验环境实验室环境。五、实验步骤1. 创建Web工程,名为TestS2H。2. 配置好struts2环境, 添加Struts2所需的包,将struts-2.3.16-all/ apps/ struts2-blank.war/ WEB-INF/ lib下的所有jar包拷贝到web项目的lib目录下即:TestS2H/WebRoot/WEB-INF/lib 配置web.xml,将struts-2.3.16-all/ apps/ struts2-blank.war/ WEB-INF下的web.xml文件打开,将 和 两个标签内容拷贝到web项目的web.xml中即:TestS2H/WebRoot/WEB-INF/web.xml中 拷贝struts.xml到项目的src文件夹下,将struts-2.3.16-all/ apps/ struts2-blank.war/ WEB-INF/ classes下的struts.xml拷贝到项目的src文件夹下3. 在SQL Server中创建数据库test,和表users。SQL脚本如下:CREATE DATABASE test;USE test;CREATE TABLE dbo.users (id int IDENTITY (1, 1) primary key NOT NULL ,username varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,password varchar (20) COLLATE Chinese_PRC_CI_AS NULL ) GO4. 打开myeclipse的database explore透视图,如图5-2。图5-2 打开数据库浏览器透视图5. 新建数据库连接testconn。在DB Browser空白处右键,点击new出现对话框并作相应的填写。然后点击AddJARs按钮,找到数据库驱动文件sqljdbc4.jar,然后finish。操作过程图如下:6. 第5步完成后效果图如下:7. 连接test数据库,右键点击如图5-4。图5-4 连接数据库将test数据库展开后,如图5-5。图5-5 数据库连接展开后8. 切换到MyEclipse窗口,操作如图。9. 添加Hibernate所需的包以及创建Hibernate工程。出现如下图界面Next后出现下图界面:Next后出现下图界面:并选中testconn填写完整后出现下图界面:点击javapackage对应的new按钮 如下图所示界面:Finish后,项目结构如下:10. 生成持久化类和映射文件。切换到database explore透视图点击后出现下图界面并作相应的设置然后next出现下图界面:Finish后项目结构如下图界面编码实现对数据库的增删查改项目分为:页面层、action层、dao层、daoimpl层11. 切换到MyEclipse窗口,操作如图5-8。图5-8切换到MyEclipse窗口12. 添加日志配置。在src/目录下添加文件:perties。其具体配置如下:log4j.rootLogger=INFO, CONSOLElog4j.appender.CONSOLE=org.apache.log4j.ConsoleAppenderlog4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern=%d %t %-5p %c - %m%n# Print only messages of level WARN or above in the package com.foo.# .foo=WARN#.sa.health.oacis=DEBUG#.apache.struts2=DEBUG#.apache=INFO#.hibernate=INFO#log4j.logger.ca.uhn=INFO# log HQL query parser activity#.hibernate.hql.ast.AST=debug# log just the SQL.hibernate.SQL=debug# log JDBC bind parameters #.hibernate.type=INFO#.hibernate.type=debug# log schema export/update #.hibernate.tool.hbm2ddl=DEBUG# log cache activity #.hibernate.cache=debug# log transaction activity#.hibernate.transaction=debug# log JDBC resource acquisition#.hibernate.jdbc=debug# enable the following line if you want to track down connection # leakages when using DriverManagerConnectionProvider #.hibernate.connection.DriverManagerConnectionProvider=trace13. 工程目录结构,如图5-14。图5-14 工程目录结构14. 修改LoginAction.java,源码如下:package com.jee;import com.dao.Users;import com.opensymphony.xwork2.ActionSupport;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;public class LoginAction extends ActionSupportprivate static final long serialVersionUID = 1L;private String username; private String password; public String getUsername() return username; public void setUsername(String username) this.username = username; public String getPassword() return password; public void setPassword(String password) this.password = password; public String execute() throws Exception try /实例化SessionFactory SessionFactory sf = new Configuration().configure().buildSessionFactory(); /实例化Session Session session = sf.openSession(); /开始事务 Transaction tx = session.beginTransaction(); /创建消息实例 Users user = new Users(); user.setUsername(getUsername(); user.setPassword(getPassword(); /将实例数据保存到数据库 session.save(user); mit(); session.close(); return SUCCESS; catch (HibernateException e) e.printStackTrace();return ERROR; 15. 创建表现层。将index.jsp改为如下:将用户名和密码保存到数据库test中。 同时在messageResource_zh_CN.properties里添加一条: save=保存,这样就会成功显示中文。welcome.jsp修改为:欢迎,数据已成功保存到数据库test。error.jsp修改为: 你输入的用户名: 数据保存到数据库失败。 16. 部署工程,启动服务器,测试工程。17. 总结:Struts2和Hibernate的整合主要是Struts的Action调用持久层的数据库封装的操作方法。在本实验中我们只使用了save方法,其实还有很多的对数据库添加、修改、删除的基本操作方法,例如public void delete(Users persistentInstance) ;public Users findById(java.lang.Integer id) ;public List findByExample(Users instance) ;public List findByProperty(String propertyName, Object value) ;public List findByUsername(Object username) ;public List findByPassword(Object password) ;public List findAll() ;pu

温馨提示

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

评论

0/150

提交评论