在 MyBatis 中處理事務有兩種方式:
SqlSession
的創建時指定 false
參數來禁用自動提交。SqlSession sqlSession = sqlSessionFactory.openSession(false);
sqlSession.commit()
和 sqlSession.rollback()
方法來手動提交或回滾事務。SqlSession sqlSession = sqlSessionFactory.openSession();
try {
// 執行 SQL 語句
sqlSession.commit(); // 提交事務
} catch (Exception e) {
sqlSession.rollback(); // 回滾事務
} finally {
sqlSession.close(); // 關閉 SqlSession
}
需要注意的是,在使用編程式事務管理時,需要手動處理事務的提交和回滾,并且要確保在最終關閉 SqlSession
前提交或回滾事務,以避免出現未提交的事務導致數據不一致的情況。