当前位置:   article > 正文

MyBatis中设置事务自动提交_springboot+mybati默认是手动提交事务,改自动提交

springboot+mybati默认是手动提交事务,改自动提交

MyBatis中设置事务自动提交

MyBatis框架是对JDBC的封装,MyBatis中的事务控制方式其本质也是JDBC的setAutoCommit()方法来设置事务提交的方式的。

1.MyBatis中事务提交

public class mybatisTest {
    @Test
    public void test01() throws IOException {
        InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
        SqlSession session = factory.openSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        List<User> list = mapper.findAll();
        for (User user : list) {
            System.out.println(user);
        }
        session.commit();
        session.close();
        is.close();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

2.上面试我们手动设置事务提交的,那么如何设置自动提交呢?

public class mybatisTest {
    @Test
    public void test01() throws IOException {
        InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
        SqlSession session = factory.openSession(true);
        UserMapper mapper = session.getMapper(UserMapper.class);
        List<User> list = mapper.findAll();
        for (User user : list) {
            System.out.println(user);
        }
        //session.commit();
        session.close();
        is.close();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

下面是源码SqlSessionFactory

public interface SqlSessionFactory {
  
    SqlSession openSession(boolean var1);
}
  • 1
  • 2
  • 3
  • 4

如果没有设置,默认是false,这时候我们需要手动设置事务提交了。如果我们设置了true那么就是自动提交了,是不是很简单。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/216113
推荐阅读
相关标签
  

闽ICP备14008679号