1、ssh框架整合最新版本Struts2+Spring+Hibernate整合在SSH2框架中,Spring充当了一个JavaBean容器的作用,Spring使用IOC(依赖注入)和AOP(面向切面编程)技术接管了Hibernate的DAO、事务和Struts的action对象及service业务层。MVC分别使用:(1)M层,Spring;(2)V层,JSP;(3)C层,Struts;(4)持久层,Hibernate我用的是myeclipse8.6,tomcat6.0.30,jdk6.0,和sqlServer2000版本的。在开发工程中所用到的jar包如下图所示:我是直接先引进去的。来做一个示例
2、讲解三者的整合:一个登录的结构1.新建数据库 stuInfo其中数据库中有一个表userInfo,字段如下图所示:Id是唯一标识符, 自动增长,userName和passWord是用户名和密码2.开始准备整合工作新建一个webProject项目导入所需要的jar包,前面截图已经给出来了。3.添加stucts2的支持选择stucts2的目录放在src下,然后打开并增加下列代码进去对于web.xml的修改我们放在最后三个框架全部整合好后进行修改4.添加数据连接如图所示:这里我用的是jtds下面我们在src下建立一个包,命名为com.hubu.entity,存放实体类添加hibernate的支持其中
3、我们在最后一步是否选择create sessionFactory的时候取消点击完成即可然后我们将下列代码加进去true true这样我们执行程序的时候会再控制台显示相应的hql查询如下所示:5.添加spring的支持点击完成即可这样就添加了Spring的支持从上述代码中可以看到,Spring封装了Hibernate的操作,用Spring的方式接管了Hibernate的Session创建及销毁,创建SessionFactory的周边信息。6.此时我们配置web.xml文件将如下代码加到web.xml中 encodingFilter org.springframework.web.filter.C
4、haracterEncodingFilter encoding utf-8 contextConfigLocation /WEB-INF/applicationContext*.xml org.springframework.web.context.ContextLoaderListener lazyLoadingFilter org.springframework.orm.hibernate3.support.OpenSessionInViewFilter flushMode AUTO lazyLoadingFilter /* 这些代码等你用的时间久了自然就会了解这里不做太多的讲述添加下列代
5、码到stucts2中struts.objectFactory的作用是使用Spring来管理struts2的action。在application.cfg.xml中添加事务的管理,这里若是不添加在我们以后做curd操作的时候会是一直不停的打开着数据库操作,而没有执行关闭的操作引入:beans如下所示 7.此时我们算是基本完成了ssh框架的整合,我们来做一个测试,看看刚才我们的整合是不是正确的。就以userInfo这个表为例来讲述他的curd操作我们在src下建立如下所示的包然分别在相应的包中放置相应的方法和类逆向生成实体类:其中实现功能的代码如下所示:userDao接口package com.h
6、ubu.dao;import java.util.List;import com.hubu.entity.UserInfo;public interface userInfoDao public void saveUserInfo(UserInfo userInfo); public void deleteUserInfo(Long id); public void updateUerInfo(UserInfo userInfo); public UserInfo findById(Long id); public List listUserInfo();userInfoDaoImpl类pac
7、kage com.hubu.daoImpl;import java.util.List;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.hubu.dao.userInfoDao;import com.hubu.entity.UserInfo;public class UserInfoDaoImpl extends HibernateDaoSupport implements userInfoDao public void deleteUserInfo(Long id) / TODO
8、 Auto-generated method stub this.getHibernateTemplate().delete(this.getHibernateTemplate().get(UserInfo.class, id); public UserInfo findById(Long id) / TODO Auto-generated method stub return this.getHibernateTemplate().get(UserInfo.class, id); public List listUserInfo() / TODO Auto-generated method
9、stub return this.getHibernateTemplate().find(from UserInfo); public void saveUserInfo(UserInfo userInfo) / TODO Auto-generated method stub this.getHibernateTemplate().save(userInfo); public void updateUerInfo(UserInfo userInfo) / TODO Auto-generated method stub this.getHibernateTemplate().update(use
10、rInfo); userService接口package com.hubu.service;import java.util.List;import com.hubu.entity.UserInfo;public interface UserInfoService public void saveUserInfo(UserInfo userInfo); public void deleteUserInfo(Long id); public void updateUerInfo(UserInfo userInfo); public UserInfo findById(Long id); publ
11、ic List listUserInfo();package com.hubu.serviceImpl;import java.util.List;import com.hubu.dao.UserInfoDao;import com.hubu.entity.UserInfo;import com.hubu.service.UserInfoService;public class UserInfoServiceImpl implements UserInfoService private UserInfoDao userInfoDao; public void deleteUserInfo(Lo
12、ng id) / TODO Auto-generated method stub this.getUserInfoDao().deleteUserInfo(id); public UserInfo findById(Long id) / TODO Auto-generated method stub return this.getUserInfoDao().findById(id); public List listUserInfo() / TODO Auto-generated method stub return this.getUserInfoDao().listUserInfo();
13、public void saveUserInfo(UserInfo userInfo) / TODO Auto-generated method stub this.getUserInfoDao().saveUserInfo(userInfo); public void updateUerInfo(UserInfo userInfo) / TODO Auto-generated method stub public void setUserInfoDao(UserInfoDao userInfoDao) this.userInfoDao = userInfoDao; public UserIn
14、foDao getUserInfoDao() return userInfoDao; 对应的action类package com.hubu.action;import java.util.List;import com.hubu.entity.UserInfo;import com.hubu.service.UserInfoService;import com.opensymphony.xwork2.ActionSupport;public class UserInfoAction extends ActionSupport private UserInfo userInfo; private
15、 UserInfoService userInfoService; private Long id; private List listAllInfos; public void setUserInfo(UserInfo userInfo) this.userInfo = userInfo; public UserInfo getUserInfo() return userInfo; public void setUserInfoService(UserInfoService userInfoService) this.userInfoService = userInfoService; pu
16、blic UserInfoService getUserInfoService() return userInfoService; public void setId(Long id) this.id = id; public Long getId() return id; public void setListAllInfos(List listAllInfos) this.listAllInfos = listAllInfos; public List getListAllInfos() return listAllInfos; public String saveUserInfo()th
17、rows Exception try this.userInfoService.saveUserInfo(userInfo); catch (Exception e) / TODO: handle exception e.printStackTrace(); return INPUT; return SUCCESS; public String deleteUserInfo()throws Exception try this.userInfoService.deleteUserInfo(id); catch (Exception e) / TODO: handle exception e.p
18、rintStackTrace(); return INPUT; return SUCCESS; public String findById()throws Exception try userInfo=this.userInfoService.findById(id); catch (Exception e) / TODO: handle exception e.printStackTrace(); return INPUT; return SUCCESS; public String listAllUer()throws Exception try listAllInfos=this.us
19、erInfoService.listUserInfo(); catch (Exception e) / TODO: handle exception e.printStackTrace(); return INPUT; return SUCCESS; 配置stucts2 listUserInfo.action /error.jsp listUserInfo.action /error.jsp listUserInfo.action /error.jsp /web/user/userModify.jsp /error.jsp /web/user/listUerInfo.jsp /error.jsp 8.建立相应的jsp文件添加页面列出已经添加的信息嗯,总的算是成功了。无论布局如何,若是有什么不对的地方,希望大家能给与指正,谢谢。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1