mybatis事务回滚配置操作代码

作者:袖梨 2021-02-23

本篇文章小编给大家分享一下mybatis事务回滚配置操作代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。

在mybatis进行批量操作的时候,插入多条数据时,设置回滚但是前面几条还是插入,经过尝试

问题所在:

官网api上openSession(false)就可以回滚了,但是用session.getConnection().getAutoCommit()查看还是true

解决方法:

将DataSource配置改为AutoCommit(false)

将conn设置setAutoCommit(false),用conn进行提交,回滚操作

例子:

SqlSession session = sqlSessionFactory.openSession(false);
  Connection conn = session.getConnection();
  conn.setAutoCommit(false);
  try {
   UserMapper mapper = session.getMapper(UserMapper.class);
   for (String name : names) {
     //各种操作
    User user = new User();
    user.setName(name);
    //插入,需要回滚
    mapper.insert(user);
   }
   conn.commit();
  } catch (Exception e) {
   //有重复回滚
   conn.rollback();
   throw e;
  } finally {
   session.close();
  }

相关文章

精彩推荐