springmvc + mybatise 一个service 处理处理多个mapper 事物不回滚



问题出现情况:

声明式事物@Transactional

在一个service调用了两个不同mapper 先后update两个数据,人为模拟后一个mapper异常,发现第一个mapper会提交数据。

网上有两种解决方法 第一个 方法 ,在@Transactional 调整事物传播方式从默认requared改为NESTED,并加入rollbackFor=Exception.class,修改后,无效。检查日志,发现当第一个mapper在执行完update时会按如下顺序执行:

DEBUG - Creating a new SqlSession
DEBUG - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@d0d75] was not registered for synchronization because synchronization is not active
DEBUG - Fetching JDBC Connection from DataSource
DEBUG - JDBC Connection [jdbc:oracle:thin:@192.168.7.10:1521:VD, UserName=JOKER, Oracle JDBC driver] will not be managed by Spring
DEBUG - ooo Using Connection [jdbc:oracle:thin:@192.168.7.10:1521:VD, UserName=JOKER, Oracle JDBC driver]
DEBUG - ==>  Preparing: update ss_user s_user set s_user.certsn=?,s_user.de

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以为您提供一些关于开发基于SpringMVC+Spring+MyBatis框架的订餐管理系统的指导。 1. 系统分析与设计 在开发订餐管理系统之前,您需要进行系统分析和设计。这包括确定系统的功能需求、数据结构、数据库设计等。您可以使用UML图来表示系统的结构和功能。 2. 环境配置 在进行开发之前,您需要配置开发环境。您需要安装Java开发工具、Tomcat服务器、MySQL数据库等。您还需要配置Maven来管理项目依赖。 3. 开发技术选择 在进行订餐管理系统的开发时,您需要选择使用SpringMVC、Spring和MyBatis框架来实现系统的功能。SpringMVC用于处理HTTP请求和响应,Spring用于管理应用程序的组件,MyBatis用于访问数据库。 4. 数据库设计 在进行数据库设计时,您需要确定数据库表的结构和关系。您可以使用MySQL数据库来存储数据。您需要创建菜品表、订单表、用户表等,并设置相应的表关系。 5. 功能实现 在进行订餐管理系统的功能实现时,您需要使用SpringMVC、Spring和MyBatis框架来实现相应的功能。例如,您需要实现用户注册、登录、用户管理、菜品管理、订单管理等功能。 6. 系统测试与部署 在完成订餐管理系统的开发后,您需要进行系统测试和部署。您需要对系统进行全面的测试,包括功能测试、性能测试、安全测试等。如果测试通过,您可以将系统部署到服务器上,供用户使用。 总之,开发基于SpringMVC+Spring+MyBatis框架的订餐管理系统需要您具备一定的Java编程经验和相关技术知识。但是,只要您认真学习和实践,相信您一定可以完成这个任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值