• 引入事务管理器
@Autowired
TransactionTemplate transactionTemplate; @Autowired
PlatformTransactionManager transactionManager;

使用方式1:

boolean result = transactionTemplate.execute(new TransactionCallback<Boolean>() {
@Override
public Boolean doInTransaction(TransactionStatus status) {
try {
// TODO something
} catch (Exception e) {
//TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动开启事务回滚
status.setRollbackOnly();
logger.error(e.getMessage(), e);
return false;
}
return true;
}
});

使用方式2:

/**
* 定义事务
*/
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setReadOnly(false);
//隔离级别,-1表示使用数据库默认级别
def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED);
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus status = transactionManager.getTransaction(def);
try {
//TODO something
transactionManager.commit(status);
} catch (Exception e) {
transactionManager.rollback(status);
throw new InvoiceApplyException("异常失败");
}

使用方式3:

SqlSession sqlSession = null;
try {
sqlSession = otInvSqlSessionFactory.openSession(ExecutorType.BATCH, true);
XXXXXMapper xXxxMapper = sqlSession.getMapper(XXXXXMapper.class);
Savepoint savepointStep1 = sqlSession.getConnection().setSavepoint();
sqlSession.getConnection().rollback(savepointStep1);
sqlSession.commit();
}catch(Exception e){
if (null != otInvSqlSession) {
sqlSession.rollback(true);
logger.error("数据回滚", e);
}
}finally {
if (null != sqlSession) {
sqlSession.clearCache();
sqlSession.close();
}
}

最新文章

  1. [转]Java常用工具类集合
  2. JavaScript,复习总结
  3. 关于man和help的区别
  4. Smart210学习记录----nand flash驱动
  5. dedecms SQL数据库连接信息注解(借鉴)
  6. #define和预编译指令
  7. hdu 2106 decimal system
  8. ring0和ring3的区别
  9. DDD(领域驱动设计)理论结合实践
  10. HTTP 简要
  11. 使用FormatMessage函数编写一个内核错误码查看器
  12. Scrum 冲刺 第五日
  13. SSH深度历险(十一) AOP原理及相关概念学习+xml配置实例(对比注解方式的优缺点)
  14. springboot+mybatis+redis实现分布式缓存
  15. 数据分析---《Python for Data Analysis》学习笔记【02】
  16. Jmeter多用户利用集合点瞬压并发测试
  17. markdown 基本语法(转载)
  18. http statusCode(状态码)含义
  19. MySQL Binlog解析
  20. Web用户控件开发--星型评分控件

热门文章

  1. 创建zookeeper集群
  2. SpringBoot注解大全 转
  3. linux 编译静态库及动态库例子--from周立功文档
  4. vins-mono中的imu参数设置
  5. 6. Scala面向对象编程(基础部分)
  6. C#进度条简单应用
  7. warning: a non-numeric value encountered in line *的解决方法
  8. 2000w数据,redis中只存放20w的数据,如何保证redis中的数据都是热点数据
  9. 我的第三篇博客(激动激动真激动!!!)A-B Problem
  10. #WEB安全基础 : HTTP协议 | 0x10 请求和响应报文重点结构及常见头部