Spring+Hibernate+struts整合开发模板

来源:互联网 发布:php设计模式应用场景 编辑:程序博客网 时间:2024/06/06 18:33
整理了好几天,查了好多资料,终于整理好了一个整合方案,实在是因为ssh整合jar总是容易发生冲突错误,来之不易,存下来以备以后需要

配置文件模板

1.web.xml

 

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><!-- 对spring容器实例化 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 对struts进行配置 --><servlet><servlet-name>struts</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class><init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value></init-param><load-on-startup>0</load-on-startup></servlet><servlet-mapping> <servlet-name>struts</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><filter><filter-name>encoding</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>encoding</filter-name><url-pattern>/*</url-pattern></filter-mapping>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list></web-app>


2.struts-config.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-config_1_3.dtd"><struts-config><form-beans><form-bean name="user" type="edu.gzu.ssh.bean.UserFoemBean"></form-bean></form-beans><action-mappings><action path="/user/list" type="edu.gzu.ssh.action.UserAction" validate="false"><forward name="list_show" path="/WEB-INF/page/show_list.jsp"></forward></action><action path="/user/add" type="edu.gzu.ssh.action.UserAddForAction" validate="false"><forward name="add_show_for" path="/WEB-INF/page/show_add.jsp"></forward></action><action path="/user/register" validate="false"parameter="method" scope="request" name="user"><forward name="register" path="/index.jsp"></forward></action></action-mappings><!-- 将action交给spring容器管理 --><controller><set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/></controller></struts-config>


3.applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-2.5.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.5.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsd"><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="org.gjt.mm.mysql.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/sshtest?useUnicode=true&characterEncoding=UTF8"/><property name="username" value="root"/><property name="password" value=""/><!-- 连接池启动时的初始值 --><property name="initialSize" value="1"/><!-- 连接池的最大值 --><property name="maxActive" value="500"/><!-- 最大空闲值,当经过一个高峰时间后,连接池可以慢慢释放用不到的连接,直到maxidle为止--><property name="maxIdle" value="2"/><!-- 最小空闲值,当连接池的剩余小于阀值时,连接池会自动生气个链接--><property name="minIdle" value="1"/></bean><bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource"></property><property name="mappingResources"><list><value>edu/gzu/ssh/bean/User.hbm.xml</value></list></property><property name="hibernateProperties"><value>hibernate.dialect=org.hibernate.dialect.MySQL5Dialecthibernate.hbm2ddl.auto=updatehibernate.show_sql=falsehibernate.format_sql=false</value></property></bean><bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory"></property></bean><tx:annotation-driven transaction-manager="txManager"/><bean id="UserService" class="edu.gzu.ssh.service.UserServiceImpl"><property name="sessionFactory" ref="sessionFactory"></property></bean> <bean name="/user/register" class="edu.gzu.ssh.action.UserAddAction"></bean></beans>

 

4.bean对象  MVC之M(model)层  User.java

package edu.gzu.ssh.bean;public class User{private int id;private String username;private String gender;private int stunumber;private String classname;public User() {super();}public User(String username, String gender, int stunumber,String calssname) {super();this.username = username;this.gender = gender;this.stunumber = stunumber;this.classname = calssname;}//省略geeter和setter
}


5.hibernate配置bean  User.hbm.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="edu.gzu.ssh.bean"><class name="User" table="user_info"><id name="id" column="id" type="int"><generator class="native"/></id><property name="username" type="string" column="username"></property><property name="gender" type="string" column="gender"></property><property name="stunumber" type="int" column="stu_number"></property><property name="classname" type="string" column="classname"></property></class></hibernate-mapping>

 

6.hibernate接口类 主用于数据库操作UserServiceDao.java   MVC之C(contorler)

package edu.gzu.ssh.Dao;import java.util.List;import edu.gzu.ssh.bean.User;public interface UserServiceDao{public void saveUser(User user);public void deleteUser(Integer id);public void updateUser(User user);public User getUser(Integer id);public List<User> getAllUser();}


7.hibernate实现类,数据库操作的实例对象UserServiceImpl.java

package edu.gzu.ssh.service;import java.util.List;import javax.annotation.Resource;import org.hibernate.SessionFactory;import org.springframework.transaction.annotation.Propagation;import org.springframework.transaction.annotation.Transactional;import edu.gzu.ssh.Dao.UserServiceDao;import edu.gzu.ssh.bean.User;@Transactionalpublic class UserServiceImpl implements UserServiceDao {@Resource private SessionFactory sessionFactory;public void setSessionFactory(SessionFactory sessionFactory) {this.sessionFactory = sessionFactory;}public void deleteUser(Integer id) {sessionFactory.getCurrentSession().delete(sessionFactory.getCurrentSession().load(User.class, id));}@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)@SuppressWarnings("unchecked")public List<User> getAllUser() {return sessionFactory.getCurrentSession().createQuery("from User").list();}@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)public User getUser(Integer id) {return (User) sessionFactory.getCurrentSession().get(User.class, id);}public void saveUser(User user) {sessionFactory.getCurrentSession().persist(user);}public void updateUser(User user) {sessionFactory.getCurrentSession().merge(user);}}


8.测试类 UserServiceTest.java

package edu.gzu.ssh.Test;import java.util.List;import org.junit.BeforeClass;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.transaction.annotation.Transactional;import edu.gzu.ssh.Dao.UserServiceDao;import edu.gzu.ssh.bean.User;@Transactionalpublic class UserServiceTest {private static UserServiceDao userService;@BeforeClasspublic static void setUpBeforeClass() throws Exception {try {ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");userService=(UserServiceDao) applicationContext.getBean("UserService");} catch (Exception e) {e.printStackTrace();}}@Test public void  saveTest(){User user=new User("张三", "男", 1201021102, "法律学122");userService.saveUser(user);System.out.print("保存成功!!!");}@Test public void getUser(){User user=userService.getUser(2);System.out.println("Username:"+user.getUsername());System.out.println("Gender:"+user.getGender());System.out.println("Stunumber:"+user.getStunumber());System.out.println("Classname:"+user.getClassname());}@Test public void updateTest(){User user=userService.getUser(1);user.setStunumber(1501021102);userService.updateUser(user);System.out.print("update成功!!!");}@Test  public void getAllTest(){List<User> users=userService.getAllUser();for(User user:users){System.out.println("Username:"+user.getUsername()+"   Gender:"+user.getGender()+"   Stunumber:"+user.getStunumber()+"   Classname:"+user.getClassname());}}}


9.struts实例 获取数据库所有对象UserAction.java

package edu.gzu.ssh.action;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import edu.gzu.ssh.Dao.UserServiceDao;import edu.gzu.ssh.bean.User;public class UserAction extends Action{private UserServiceDao dao;@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {ApplicationContext application=new ClassPathXmlApplicationContext("applicationContext.xml");dao=(UserServiceDao) application.getBean("UserService");List<User> users=dao.getAllUser();request.setAttribute("users", users);return mapping.findForward("list_show");}}


10.jsp显示show_list.jsp  MVC之V(View)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>My JSP 'show_list.jsp' starting page</title>      </head>    <body>    <center>    <h2>已注册用户信息</h2>    <table border="1px solid gray">    <tr><td>用户ID</td><td>姓名</td><td>性别</td><td>学号</td><td>班级</td></tr>    <c:forEach items="${users}" var="user">    <tr><td>${user.id }</td><td>${user.username}</td><td>${user.gender}</td>    <td>${user.stunumber}</td><td>${user.classname}</td></tr>    </c:forEach>    </table>    <a href="${pageContext.request.contextPath }/index.jsp">返回首页</a>    <a href="${pageContext.request.contextPath }/user/add.do">注册新信息</a>    </center>  </body></html>


 

 

0 0