天天看點

mybatis-transaction包閱讀

transaction包主要功能

  • JdbcTransaction:單獨使用Mybatis時,預設的事務管理實作類,就和它的名字一樣,它就是我們常說的JDBC事務的極簡封裝,僅是讓connection支援連接配接池而已
  • ManagedTransaction:沒有具體的實作,僅是提醒使用者,在其它環境中應用時,把事務托管給其它架構,比如托管給Spring去管理。

transaction包主要結構

mybatis-transaction包閱讀

transaction包設計模式

  • 工廠方法。

transaction後記

  • autoCommit預設是false,如果沒有手動commit,在sqlSession.close()時,底層會将事務進行rollback()操作,然後才執行conn.close()關閉連接配接,資料最終不能持久化到資料庫中。
  • 如果即不commit,也不close,insert後,jvm結束前,如果事務隔離級别是read uncommitted,我們可以查到該條記錄。jvm結束後,事務被rollback(),記錄消失
  • 處理事物一般都try-catch-finally程式設計方式
  • 附上源碼結構:
    mybatis-transaction包閱讀

繼續閱讀