生命周期,和作用域,是至關重要的,因為錯誤的使用會導致非常嚴重的並發問題。
SqlSessionFactoryBuilder:
-
一旦創建了 SqlSessionFactory,就不再需要它了
-
局部變量
SqlSessionFactory:
-
說白了就是可以想象為 :數據庫連接池
-
SqlSessionFactory 一旦被創建就應該在應用的運行期間一直存在,沒有任何理由丟棄它或重新創建另一個實例。
-
因此 SqlSessionFactory 的最佳作用域是應用作用域。
-
最簡單的就是使用單例模式或者靜態單例模式。
SqlSession
-
連接到連接池的一個請求!
-
SqlSession 的實例不是線程安全的,因此是不能被共享的,所以它的最佳的作用域是請求或方法作用域。
-
用完之后需要趕緊關閉,否則資源被占用!
這里面的每一個Mapper,就代表一個具體的業務!
但是每個Mapper可以運行多個業務(方法)