spring mvc+hibernate 实现事务管理(配置文件版)
2014-07-29 15:53
555 查看
1,jar包支持
spring整合hibernate容易冲突的包:
jackson-core-asl-1.9.5.jar,jackson-mapper-asl-1.9.5.jar和spring的com.springsource.org.codehaus.jackson.mapper.jar,解决办法是删除spring自带的jar
还有就是 aoplliance.jar,asm.jar和cglib.jar冲突,结局办法是改变cglib.jar的版本,2.1改为2.2 2.2改为2.1
包的截图:
接下来,配置文件
web.xml:
applicationContext.xml:
项目结构:
User.hbm.xml:
实体类User
userDao
userService:
package com.test2.service;
public interface UserService {
public void test();
}
userServiceImpl:
UserTest.jsp:
前台用的是easyui
应对各种版本冲突,是不是用maven会好一点?
用maven是好一点,特别是发现一个版本不符合更换包的时候,只需要改几句话,不用添加删除包。
另外,不用数据库封装框架能实现spring的事务管理吗?
不能。
源码下载路径:http://download.csdn.net/detail/waiwai4701/7837667
spring整合hibernate容易冲突的包:
jackson-core-asl-1.9.5.jar,jackson-mapper-asl-1.9.5.jar和spring的com.springsource.org.codehaus.jackson.mapper.jar,解决办法是删除spring自带的jar
还有就是 aoplliance.jar,asm.jar和cglib.jar冲突,结局办法是改变cglib.jar的版本,2.1改为2.2 2.2改为2.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"> <servlet> <servlet-name>dispathcer</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/applicationContext.xml </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispathcer</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
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:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:cache="http://www.springframework.org/schema/cache" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> <!-- 注解扫描包 --> <context:component-scan base-package="com.test2"/> <!--注解支持--> <mvc:annotation-driven/> <!--视图解析--> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/pages/"/> <property name="suffix" value=".jsp"/> </bean> <!-- 静态文件 --> <mvc:resources mapping="/common/**" location="/common/" cache-period="31556926"/> <mvc:resources mapping="/js/**" location="/js/" cache-period="31556926"/> <!-- 支持json返回 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list > <ref bean="mappingJacksonHttpMessageConverter" /> </list> </property> </bean> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json;charset=UTF-8</value> </list> </property> </bean> <!-- 数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"> </property> <property name="url" value="jdbc:mysql://localhost:3306/test"></property> <property name="username" value="root"/> <property name="password" value=""/> </bean> <!-- sessionfactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.show_sql">true</prop> </props> </property> <property name="mappingResources"> <!-- 实体类配置文件 --> <value>com/test2/model/User.hbm.xml</value> </property> </bean> <!-- dao --> <bean id="userDao" class="com.test2.dao.impl.UserDaoImpl"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- service --> <bean id="userService" class="com.test2.service.impl.UserServiceImpl"> <property name="userDao" ref="userDao"></property> </bean> <!-- 配置事务管理器bean,使用HibernateTransactionManager事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <!-- 为事务管理器注入sessionFactory" --> <property name="sessionFactory" ref="sessionFactory"/> </bean> <!-- 注解实现事务 --> <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" /> </beans>
项目结构:
User.hbm.xml:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.test2.model"> <class name="User" table="tuser"> <id name="id" column="id"> <generator class="identity" /> </id> <property name="userName" column="username" length="20" /> <property name="password" column="password" length="20" /> </class> </hibernate-mapping>
实体类User
package com.test2.model; import java.io.Serializable; public class User implements Serializable { private String id; private String userName; private String password; public User(){ } public User(String userName,String password){ this.userName = userName; this.password = password; } public String getId() { return id; } public void setId(String id) { this.id = id; } 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 toString(){ return "user:id="+id+",userName="+userName+",password="+password; } }
userDao
package com.test2.dao; import com.test2.model.User; public interface UserDao { public void save(User user); }userDaoImpl:
package com.test2.dao.impl; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import org.springframework.stereotype.Repository; import com.test2.dao.UserDao; import com.test2.model.User; public class UserDaoImpl extends HibernateDaoSupport implements UserDao{ private SessionFactory sessionFactory; @Override public void save(User user) { getHibernateTemplate().save(user); } }
userService:
package com.test2.service;
public interface UserService {
public void test();
}
userServiceImpl:
package com.test2.service.impl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import com.test2.dao.UserDao; import com.test2.model.User; import com.test2.service.UserService; public class UserServiceImpl implements UserService{ @Autowired private UserDao userDao; public UserDao getUserDao() { return userDao; } public void setUserDao(UserDao userDao) { this.userDao = userDao; } @Transactional(rollbackFor=Exception.class) public void test() { User user1 = new User("zhangsan","111111"); User user2 = new User("lisi","222222222222222222222222222222"); userDao.save(user1); System.out.println("user1 success"); userDao.save(user2); System.out.println("user2 success"); } }
UserController:
<pre name="code" class="java">package com.test2.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.test2.service.UserService; @Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userService; public UserService getUserService() { return userService; } public void setUserService(UserService userService) { this.userService = userService; } @RequestMapping("/doTest") @ResponseBody public String doTest(){ userService.test(); return null; } }
UserTest.jsp:
<pre name="code" class="javascript"><%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> <jsp:include page="../common/easyui.jsp"></jsp:include> <script type="text/javascript" charset="utf-8"> function aa(){ alert('aa'); $.ajax({ url :'${pageContext.request.contextPath}/user/doTest', success : function (result){ alert(1); } }); } </script> </head> <body class="easyui-layout" data-options="fit:true"> <input type="button" value="..." onclick="aa()"/> </body> </html>
前台用的是easyui
应对各种版本冲突,是不是用maven会好一点?
用maven是好一点,特别是发现一个版本不符合更换包的时候,只需要改几句话,不用添加删除包。
另外,不用数据库封装框架能实现spring的事务管理吗?
不能。
源码下载路径:http://download.csdn.net/detail/waiwai4701/7837667
相关文章推荐
- spring mvc+hibernate 实现事务管理(配置文件版)
- Xml配置实现Spring_Hibernate中的声明式事务管理
- spring mvc +hibernate +spring +shiro 实现权限管理详细配置
- spring mvc+hibernate 实现事务管理(全注解版)
- spring mvc+hibernate 实现事务管理(全注解版)
- spring mvc+hibernate 实现事务管理(全注解版)
- SpringMVC学习系列(12) 完结篇 之 基于Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现
- SpringMVC学习系列(12) 完结篇 之 基于Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现
- Spring管理 hibernate 事务配置的五种方式
- spring hibernate整合时配置文件的事务部分(spring管理事务)
- Spring管理 hibernate 事务配置的五种方式
- SpringMVC学习系列(12) 完结篇 之 基于Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现
- SpringMVC+JdbcTemplate实现事务管理(插入操作需要返回自增字段)
- Spring 管理hibernate事物,xml配置,注解 两种实现方式
- SpringMVC(12)完结篇 基于Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现
- SpringMVC学习系列(12) 完结篇 之 基于Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现
- SpringMVC Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现
- 使用Spring配置文件实现事务管理
- Spring学习笔记(18)----使用Spring配置文件实现事务管理
- Spring MVC + JPA + Hibernate + GlassFish V3 + MySQL 实现J2EE应用的常用配置模板详解