`
iaiai
  • 浏览: 2148841 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mybatis3整合spring3的事务管理

    博客分类:
  • J2EE
 
阅读更多
要管理事务的service方法注入DataSourceTransactionManager

@Inject
private DataSourceTransactionManager transactionManager;


方法中:
public void init(User user, Item item) throws Exception{
        DefaultTransactionDefinition def = new DefaultTransactionDefinition();//事务定义类
        def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
        TransactionStatus status = transactionManager.getTransaction(def);//返回事务对象
        try {
            dao.insert("userMapper.insert", user);     
            dao.insertList("itemMapper.insertList", items);
            if(true) throw new Exception();
            transactionManager.commit(status);
        }catch (Exception ex) {
            transactionManager.rollback(status);
        }
    }


能回滚,结果如下:
引用

2011-10-12 17:28:35,286 [org.springframework.jdbc.datasource.DataSourceUtils]-[DEBUG] Fetching JDBC Connection from DataSource
2011-10-12 17:28:35,286 [org.springframework.jdbc.datasource.DriverManagerDataSource]-[DEBUG] Creating new JDBC DriverManager Connection to [jdbc:mysql://localhost:3306/test]
2011-10-12 17:28:35,700 [org.mybatis.spring.SqlSessionUtils]-[DEBUG] Creating SqlSession with JDBC Connection [com.mysql.jdbc.JDBC4Connection@dd5f6d]
2011-10-12 17:28:35,706 [java.sql.Connection]-[DEBUG] ooo Connection Opened
2011-10-12 17:28:35,713 [org.mybatis.spring.transaction.SpringManagedTransaction]-[DEBUG] JDBC Connection [com.mysql.jdbc.JDBC4Connection@dd5f6d] will not be managed by Spring
2011-10-12 17:28:35,731 [org.mybatis.spring.SqlSessionUtils]-[DEBUG] SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@bfd849] was not registered for synchronization because synchronization is not active
2011-10-12 17:28:35,922 [java.sql.PreparedStatement]-[DEBUG] ==>  Executing: select id, nick, psw, is_sync as isSync, is_validate_psw as isValidatePsw, init_date as initDate, version_id as versionId from users where nick = ?
2011-10-12 17:28:35,922 [java.sql.PreparedStatement]-[DEBUG] ==> Parameters: test(String)
2011-10-12 17:28:35,946 [org.mybatis.spring.SqlSessionUtils]-[DEBUG] Closing no transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@bfd849]
2011-10-12 17:28:35,948 [org.springframework.jdbc.datasource.DataSourceUtils]-[DEBUG] Returning JDBC Connection to DataSource
2011-10-12 17:28:35,953 [org.springframework.web.servlet.DispatcherServlet]-[DEBUG] Rendering view [org.springframework.web.servlet.view.InternalResourceView: unnamed; URL [init]] in DispatcherServlet with name 'dispatcher'
2011-10-12 17:28:35,953 [org.springframework.web.servlet.view.InternalResourceView]-[DEBUG] Forwarding to resource [init] in InternalResourceView 'null'
2011-10-12 17:28:35,954 [org.springframework.web.servlet.DispatcherServlet]-[DEBUG] DispatcherServlet with name 'dispatcher' processing GET request for [/test/sync/init]
2011-10-12 17:28:35,954 [org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping]-[DEBUG] Mapping [/sync/init] to HandlerExecutionChain with handler [com.books.controller.SyncController@168eac0] and 1 interceptor
2011-10-12 17:28:35,954 [org.springframework.web.servlet.DispatcherServlet]-[DEBUG] Last-Modified value for [/test/sync/init] is: -1
2011-10-12 17:28:36,899 [org.springframework.jdbc.datasource.DataSourceTransactionManager]-[DEBUG] Creating new transaction with name [null]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
2011-10-12 17:28:36,899 [org.springframework.jdbc.datasource.DriverManagerDataSource]-[DEBUG] Creating new JDBC DriverManager Connection to [jdbc:mysql://localhost:3306/test]
2011-10-12 17:28:36,907 [org.springframework.jdbc.datasource.DataSourceTransactionManager]-[DEBUG] Acquired Connection [com.mysql.jdbc.JDBC4Connection@1317223] for JDBC transaction
2011-10-12 17:28:36,921 [org.springframework.jdbc.datasource.DataSourceTransactionManager]-[DEBUG] Switching JDBC Connection [com.mysql.jdbc.JDBC4Connection@1317223] to manual commit
2011-10-12 17:28:36,921 [org.mybatis.spring.SqlSessionUtils]-[DEBUG] Creating SqlSession with JDBC Connection [com.mysql.jdbc.JDBC4Connection@1317223]
2011-10-12 17:28:36,921 [java.sql.Connection]-[DEBUG] ooo Connection Opened
2011-10-12 17:28:36,921 [org.mybatis.spring.transaction.SpringManagedTransaction]-[DEBUG] JDBC Connection [com.mysql.jdbc.JDBC4Connection@1317223] will be managed by Spring
2011-10-12 17:28:36,921 [org.mybatis.spring.SqlSessionUtils]-[DEBUG] Registering transaction synchronization for SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1cecdd7]
2011-10-12 17:28:36,929 [java.sql.PreparedStatement]-[DEBUG] ==>  Executing: insert into users( id,nick, psw, is_sync, is_validate_psw, init_date,version_id) values( ?, ?, ?, ?, ?, ?, ?)
2011-10-12 17:28:36,929 [java.sql.PreparedStatement]-[DEBUG] ==> Parameters: 180012197(Long), test(String), null, false(Boolean), false(Boolean), 2011-10-12(Date), 0(Integer)
2011-10-12 17:28:36,930 [org.mybatis.spring.SqlSessionUtils]-[DEBUG] Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1cecdd7]
2011-10-12 17:28:36,930 [org.mybatis.spring.SqlSessionUtils]-[DEBUG] Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1cecdd7] from current transaction
2011-10-12 17:28:37,034 [java.sql.PreparedStatement]-[DEBUG] ==>  Executing: insert into item (id, outer_id, title, props, cost, comments, owner ) values (?, ?, ?, ?, ?,?, ?, ?)
2011-10-12 17:28:37,035 [java.sql.PreparedStatement]-[DEBUG] ==> Parameters: 50329(Long), 一二三四五六七八九是一二三四五六七八九时一(String), 23(String), 20000:29527;20518:28416;20518:28417;20664:28105;20666:29937;20677:29952;35281:136847;1625899:3216971;1627207:28332;1627207:3232481;2915146:53908;2917721:3269957;2918248:3267690;(String), 12.5(Double), null, 180012197(Long)
2011-10-12 17:28:37,035 [org.mybatis.spring.SqlSessionUtils]-[DEBUG] Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1cecdd7]
2011-10-12 17:28:37,036 [org.springframework.jdbc.datasource.DataSourceTransactionManager]-[DEBUG] Initiating transaction rollback
2011-10-12 17:28:37,036 [org.springframework.jdbc.datasource.DataSourceTransactionManager]-[DEBUG] Rolling back JDBC transaction on Connection [com.mysql.jdbc.JDBC4Connection@1317223]
2011-10-12 17:28:37,065 [org.mybatis.spring.SqlSessionUtils]-[DEBUG] Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1cecdd7]
2011-10-12 17:28:37,065 [org.springframework.jdbc.datasource.DataSourceTransactionManager]-[DEBUG] Releasing JDBC Connection [com.mysql.jdbc.JDBC4Connection@1317223] after transaction
2011-10-12 17:28:37,065 [org.springframework.jdbc.datasource.DataSourceUtils]-[DEBUG] Returning JDBC Connection to DataSource
2011-10-12 17:28:37,065 [org.springframework.web.servlet.DispatcherServlet]-[DEBUG] Null ModelAndView returned to DispatcherServlet with name 'dispatcher': assuming HandlerAdapter completed request handling
2011-10-12 17:28:37,065 [org.springframework.web.servlet.DispatcherServlet]-[DEBUG] Successfully completed request
2011-10-12 17:28:37,066 [org.springframework.web.servlet.DispatcherServlet]-[DEBUG] Successfully completed request
分享到:
评论

相关推荐

    mybatis3.25整合spring3.25注解事务

    mybatis3.25整合spring3.25采用注解的方式加载bean,带增删改查例子,文件上传例子,翻页例子,翻页样式20多种,更改样式只需要替换翻页div的css样式名,applicationxml注释了详细的说明,mybatis持久层有ObeectBean方式和...

    mybatis与spring整合的全部jar包

    该压缩包包含了mybatis与spring整合的全部jar包,为学习整合ssm框架提供一个环境

    springmvc3+spring+mybatis3整合项目 注解实现

    springMVC+Mybatis3 0 2+spring3 0 5(包含事务详解 代码诠释 含数据库文件) 注解实现自动注入 展示了增 删 改 查 注解 sql文件 经过严密测试绝对可以运行起来

    Spring 4 + Mybatis 3 注解事务

    Spring 与 各框架的组各下来,版本就特别的多,针对简单的 使用注解来管理事务的,研究了两天,要不网上...说一下环境 Intellij Idea 15 + Maven + Spring 4.25 + Mybatis 3使用注解的方式,进行的事务回滚,欢迎测试。

    完整mybatis3.0.6与spring3.0整合例子

    完整mybatis3.0.6与spring3.0整合例子,带有数据库生成文件。,特别是其中的事务处理,包括回滚。

    mybatis-spring-1.2.3

    MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。 使用这个类库中的类, Spring 将会加载必要的 MyBatis 工厂类和 session 类。 这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 ...

    struts2.3+spring3.2+mybatis3.1整合注释行事务处理(含jar包)

    一个完整的s2sm整合项目,含jar包。使用注释型事务管理。给大家参考了。

    MyBatis与Spring整合——通过官方文档进行最简单的整合

    MyBatis与Spring整合——通过官方文档进行最简单的整合

    spring与mybatis整合实现事务配置

    struts2、spring与mybatis整合 包含简单登录功能 事务配置,运行JunitTestVillageArticle的modify测试。配置说明参考注释

    mybatis-spring-1.2.2.jar

    那么,我们就想将 MyBatis3 的支持添加 到 Spring3.0(参考 Spring Jira 中的问题)中。而不幸的是,Spring 3.0 的开发在 MyBatis 3.0 官方发布前就结束了。 因为 Spring 开发团队不想发布一个基于非发布版的 MyBatis 的...

    Spring+Mybatis整合事务回滚

    花了一晚上时间终于搞出来了Spring整合Mybatis事务回滚(Mysql数据库),控制Service层中的多次插入操作,多次操作整体是一个事务。 里面有缘嘛和jar包,资源为war包,导入即可。运行Test类中的测试代码即可。 建表...

    springMVC3.0 + MyBatis3.1 整合

    springMVC3.0 + MyBatis3.1 花了2天整合成功的DEMO Spring 用的是基于注解的 MyBatis 用的是基于XML的 带表结构 有增删改查的小例子(含事务...附赠:mybatis 整合spring.pdf(针对mybatis-spring-1.1.1.jar的使用说明)

    Spring/SpringMVC/MyBatis整合+事务回滚

    Spring/SpringMVC/MyBatis整合,可事务回滚

    mybatis-3.2.5.jar及mybatis-spring-1.2.2.jar

    MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。 使用这个类库中的类, Spring 将会加载必要的 MyBatis 工厂类和 session 类。 这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 ...

    MyBatis3.06与Spring3.1整合例子

    MyBatis3.06与Spring3.1整合例子,配置了事务,spring采用annotation的形式

    mybatis-spring整合包.zip

    单纯的mybtais框架来开发web项目,还是比较吃力。 需要引入spring来管理我们的javabean。并且有事务管理等。 这个是较全的mybatis和spring的整合包。

    【Spring整合Mybatis配置及测试代码】

    MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。 使用这个类库中的类, Spring 将会加载必要的 MyBatis 工厂类和 session 类。 这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 ...

    Spring+MyBatis

    MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。 使用这个类库中的类, Spring 将会加载必要的 MyBatis 工厂类和 session 类。 这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 ...

    Spring、SpringMVC和Mybatis框架整合包

    另外spring的aop,事务管理等等都是我们经常用到的。 MyBatis:如果你问我它跟鼎鼎大名的Hibernate有什么区别?我只想说,他更符合我的需求。第一,它能自由控制sql,这会让有数据库经验的人(当然不是说我啦捂脸)...

    MyBatis与spring的整合-添加事务-src.zip

    MyBatis与spring的整合-添加事务-src.zip

Global site tag (gtag.js) - Google Analytics