【MyBatis】SqlSession相關的生命周期及作用域


 

 

生命周期,和作用域,是至關重要的,因為錯誤的使用會導致非常嚴重的並發問題

SqlSessionFactoryBuilder:

  • 一旦創建了 SqlSessionFactory,就不再需要它了

  • 局部變量

SqlSessionFactory:

  • 說白了就是可以想象為 :數據庫連接池

  • SqlSessionFactory 一旦被創建就應該在應用的運行期間一直存在,沒有任何理由丟棄它或重新創建另一個實例。

  • 因此 SqlSessionFactory 的最佳作用域是應用作用域。

  • 最簡單的就是使用單例模式或者靜態單例模式。

SqlSession

  • 連接到連接池的一個請求!

  • SqlSession 的實例不是線程安全的,因此是不能被共享的,所以它的最佳的作用域是請求或方法作用域。

  • 用完之后需要趕緊關閉,否則資源被占用!

 

這里面的每一個Mapper,就代表一個具體的業務!

但是每個Mapper可以運行多個業務(方法)


免責聲明!

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



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