




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1编写目的最近在学习Struts1.2+Spring2.5+Hibernate3.2整合,这期间出现了很多问题,在网上找了若干的实例均有不同程度的问题,为了让想要学习这个整合的人少走弯路,特写下这篇文章,希望对大家有所帮助,2实验环境l MyEclipse6.5l Tomcat5.5.26l MySQL5.0l 数据库脚本程序CREATE TABLE user ( id int(11) NOT NULL auto_increment, username varchar(50) default NULL, password varchar(50) default NULL, PRIMARY KEY (id);INSERT INTO user VALUES ('1', 'admin', 'admin');环境的搭建这里就不写了,估计大家应该很熟悉,不会的可以上网看一下,有很多这样的资料。3Go!让我们开始创建工程打开MyEclipse,需要注意的是这里应该处于MyEclipse Java Enterprise视图;新建一个Web Project,输入适当的工程名字,这里我们输入ssh,Finish即可。确定之后MyEclipse会生成名为SSH的项目,其中生成的目录结构如下所示:4添加Struts1.2框架支持在ssh工程上面右击,在弹出的菜单中选择MyEclipse - Add Struts Capabilities,添加Struts的支持。在弹出的对话框中选择Struts 1.2,修改Base package for new classes成所需的包名,其余保持原状,Finish即可完成后的结构为:5添加Spring2.0框架支持在ssh工程上面右击,在弹出的菜单中选择MyEclipse - Add Spring Capabilities,添加Spring框架支持由于Spring采取最小化库发布的方式,使得Spring的库文件彼此都是分离的,因而我们需要自己选择需要的库,需要引用的如下图:选择好后Next,在窗口中选择Browse,选择ssh工程下面的WEB-INF文件夹,然后Finsh。6配置数据源在MyEclipse右上角选择MyEclipse Database Explorer,打开数据库管理视图。在左侧的DB Browser点击右键,选择New,打开Database Driver对话框。在Database Driver对话框中按照如下配置选择数据库驱动。首先选择Driver Template,在这里我们选择MySQL。Driver Name是以后配置时使用的驱动名字,用以区分驱动,这里使用MySQL即可。然后根据实际情况填写URL,User name和Password。点击Add JARs添加数据库驱动文件。为方便配置,可以选择Save password保存密码。配置完毕后Finish即可。7Spring与Hibernate的整合当配置完数据源后,就可以添加Hibernate支持了。切换到MyEclipse Java Enterprise视图,在ssh工程上面右击,在弹出的菜单中选择MyEclipse - Add Hibernate Capabilities,添加Hibernate的支持。我们选择Hibernate3.2,全部按照默认设置即可,然后点击Next; 在对话框中选择Spring configuration file,表示我们希望将Hibernate托管给Spring进行管理,这是将Hibernate与Spring进行整合的基础。然后点击Next;在出现的对话框中选择Existing Spring configuration file。因为我们已经添加了Spring的配置文件,所以这里选择的是已存在的配置文件。MyEclipse会自动找到存在的那个文件。然后在SessionFactory ID中输入Hibernate的SessionFactory在Spring配置文件中的Bean ID的名字,这里我们输入sessionFactory即可。然后点击Next;在出现的对话框中的Bean Id里面输入数据源在Spring中的Bean ID的名字,这里我们输入dataSource。然后在DB Driver里面选择我们刚刚配置好的ssh,MyEclipse会将其余的信息自动填写到表格里面。然后点击Next;在出现的对话框中取消Create SessionFactory class。点击Finish即可。此时MyEclipse会自动打开Spring的配置文件,文件内容为:此时,切换到MyEclipse DataBase Explorer视图,右键打开数据库连接,在需要使用的数据表格上面点击右键,选择Hibernate Reverse Engineering.。这里我们使用刚刚建立在test数据库中添加的user表。在打开的对话框中修改Java src folder为我们建立的/ssh/src,这里需要选择到src文件夹,并且需要填写Java package,这是MyEclipse生成的类所在的包,我们将其取名为user。然后选择Java Data Object,建立POJO类。然后选择Java Data Access Object。其中,POJO类是数据库表格所对应的Java类,JDO类是MyEclipse自动生成的对数据库的一些操作。这里会封装一些常用的操作,简化我们的编写。填写完成后点击Next。在出现的对话框中选择ID Generator为native,然后点击Finish即可。此时ssh项目的目录结构如下所示。其中的User.Java是MyEclipse生成的使用面向对象的Java语言对数据库表格进行的抽象,User.hbm.xml是将数据库表格中的字段和POJO类的属性进行映射的定义,UserDAO.java封装了一些MyEclipse自动生成的对数据库的操作。这时我们修改一下文件目录,使之更好的组织。我们建立一个dao包,将DAO类与POJO类分开。然后我们在struts包下面建立action和form包,用来管理Struts的Action和Form。为了将实现与接口进行解耦,我们建议在dao包下面添加接口,然后建立dao.impl包,将实际的DAO类放在这里。DAO类是直接与数据库打交道的类,为了对业务逻辑进行封装,我们将业务全部写在service类里面,和dao一样,我们先建立service包,里面添加业务接口,具体的实现放在service.impl里面。将UserDAO.java移动到dao的impl包下面,并在dao包下建立接口IUserDAO,内容为:package com.ssh.dao;import java.util.List;import com.ssh.user.User;public interface IUserDAO public User findById(Integer id); public List findByUsername(Object username); public void save(User user);在service中建立接口IUserService.java,在service中impl中建立UserService.javaIUserService.javapackage com.ssh.service;import com.ssh.user.User;public interface IUserService public User getUserById(Integer id); public User getUserByUsername(String username); public void addUser(User user);UserService.javapackage com.ssh.service.impl;import java.util.List;import com.ssh.dao.IUserDAO;import com.ssh.service.IUserService;import com.ssh.user.User;public class UserService implements IUserService private IUserDAO userDAO; public void addUser(User user) userDAO.save(user); public User getUserById(Integer id) return userDAO.findById(id); public User getUserByUsername(String username) List list = userDAO.findByUsername(username); if (list.size() = 0) return null; else return (User) list.get(0); public IUserDAO getUserDAO() return userDAO; public void setUserDAO(IUserDAO userDAO) this.userDAO = userDAO; 此时的整体工程结构为: 此时的applicationContext内容需要配置bean内容为: 8整合Struts和SpringStruts和Spring整合方式其核心是让Struts能够访问到交给Spring进行托管的类,这个我在网上看到了一个方式,自我认为很好,因此只要我们可以让Struts从Spring获得需要的类就可以了。 为了达到这个目标,我们创建一个类BaseAction:package com.ssh.struts.action;import org.springframework.web.context.WebApplicationContext;import org.springframework.web.context.support.WebApplicationContextUtils;import org.springframework.web.struts.ActionSupport;public class BaseAction extends ActionSupport protected Object getBean(String id) WebApplicationContext ctx = WebApplicationContextUtils .getWebApplicationContext(this.servlet.getServletContext(); return ctx.getBean(id); 为了让Web容器能够初始化Spring,我们需要修改web.xml文件,增加以下内容: contextConfigLocation /WEB-INF/applicationContext.xml SpringContextServlet org.springframework.web.context.ContextLoaderServlet 1 9啊,让看看我们工作是否有效通过上面的配置,我们已经能够让这三个框架来协同作战了,让我们现在来测试一下。首先创建基于Struts的JSP页面。打开WEB-INF下面的struts-config.xml,单击右键,选择New - Form, Action and JSP。在弹出的对话框中添加User case,然后点击Add生成Properties代码。这会由MyEclipse自动生成相应的Form代码。输入完成后选择JSP选项卡,选上Create JSP form,修改路径,然后点击Next。在出现的对话框中修改Path,将Superclass更改为前面定义的BaseAction,然后将Input Source修改为自己需要的路径。完成后Finish即可。然后在struts-config.xml点击右键,选择New - Forward,准备创建一个ActionForward。在弹出的对话框中,选择Local Action Forward,通过Browser填写Action Path,然后填写Name和Path,完成后点击Finish即可。在LoginAction中添加如下代码public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) LoginForm loginForm = (LoginForm) form; String username = loginForm.getUsername(); String password = loginForm.getPassword(); ActionForward forward
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业生产安全事故分析报告
- 工业自动化与绿色制造
- 工作中的数据分析与应用
- 工业自动化的发展现状与未来趋势分析
- 工作中的个人性格与冲突处理
- 工业领域新能源技术应用
- 工作环境改善的实践与思考
- 工厂企业消防安全管理与应急预案
- 工厂生产线的环境温控系统设计
- 工程档案资料管理的标准化与规范化研究
- 科室vte管理制度
- 中小学美术教学评价构建及实施策略
- 2024年西南医科大学招聘专职辅导员真题
- 建设工程动火管理制度
- 保育师操作考试题及答案
- 天津市部分区2025年九年级下学期中考二模数学试卷(含详解)
- 广东省珠海市文园中学2025届七下数学期末质量跟踪监视试题含解析
- 2024 - 2025学年人教版三年级下册美术期末考试试卷及参考答案
- 公共组织绩效评估-形考任务二(占10%)-国开(ZJ)-参考资料
- 《肺结核的诊断与治疗》课件
- 矿泉水配送合同协议
评论
0/150
提交评论