mybatis設置自動提交事務


我們想要mybatis幫助我們自動提交事務其實很簡單,只需要在SqlSessionFactory對象的openSession方法中設置參數為true就可以了,mybatis工具類如下:

public class MybatisUtils {
    private static SqlSessionFactory sqlSessionFactory;

    static {
        try {
            //使用Mabatis第一步:獲取SqlSessionFactory對象
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //有了SqlsessionFactory,我們就可以從中獲得SqlSession的實例了。
    public static SqlSession getSqlSession(){

        return sqlSessionFactory.openSession(true); //如果不設置參數或者參數為false就是手動提交事務,參數設置為true就是自動提交事務
    }
}

 

自動提交事務有什么用?

在以前我們沒有給openSession設置參數的時候,默認是手動提交事務。這樣我們進行增刪改操作的時候就需要手動提交事務,如下邊第7行代碼就是提交事務

1 @Test
2     public void addUser(){
3         SqlSession sqlSession = MybatisUtils.getSqlSession();
4         UserMapper mapper = sqlSession.getMapper(UserMapper.class);
5         int res = mapper.addUser(new User(6, "王五", "789456"));
6         System.out.println("res:"+res);
7         sqlSession.commit();
8         sqlSession.close();
9     }

 

 現在我們給openSession設置參數為true之后,mybatis就幫我們自動提交事務

1 @Test
2     public void addUser(){
3         SqlSession sqlSession = MybatisUtils.getSqlSession();
4         UserMapper mapper = sqlSession.getMapper(UserMapper.class);
5         int res = mapper.addUser(new User(6, "王五", "789456"));
6         System.out.println("res:"+res);
7         sqlSession.close();
8     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM