MyBatis核心物件

2021-09-27 04:36:41 字數 1319 閱讀 2487

sqlsessionfactory 對象的例項為核心

sqlsessionfactorybuilder物件來獲得 。

xml 配置檔案,或從 configuration 類的習慣準備的例項中構建 sqlsessionfactory 物件。

sqlsession 物件完全包含以資料庫為背景的所有執行 sql 操作的 方法。

你可以用 sqlsession 例項來直接執行已對映的 sql 語句。

sqlsessionfactorybuilder

這個類可以被例項化,使用和丟棄。

一旦你建立了 sqlsessionfactory 後,這個類就不需要存在了。

因此 sqlsessionfactorybuilder 例項的最佳範圍是方法範圍 (也就是本地方法變數)。

你可以重用 sqlsessionfactorybuilder 來建立多個 sqlsessionfactory 例項。

sqlsessionfactory

一旦被建立,sqlsessionfactory 應該在你的應用執行期間都存在。

沒有理由來處理或重新建立它。

使用 sqlsessionfactory 的最佳實踐是在應用執行期間不要重複建立多次。

這樣的操作將被視為是非常糟糕的。

因此 sqlsessionfactorysqlsessionfactory 的最佳範圍是應用範圍。

有很多方法可以做到, 最簡單的就是使用單例模式或者靜態單例模式。

sqlsession

每個執行緒都應該有它自己的 sqlsession 例項。

sqlsession 的例項不能被共享,也是執行緒不安全的。

因此最佳的範圍是請求或方法範圍。

絕對不能將 sqlsession 例項的引用放在乙個 類的靜態字段甚至是例項欄位中。

也絕不能將 sqlsession 例項的引用放在任何型別的管理範 圍中, 比如 serlvet 的 httpsession。

如果你現在正用任意的 web 框架, 要考慮 sqlsession 放在乙個和 http 請求物件相似的範圍內。

換句話說,基於收到的 http 請求,你可以開啟 了乙個 sqlsession,然後返回響應,就可以關閉它了。 關閉 sqlsession很重要,你應該確保使用 finally 塊來關閉它。

手寫自己的MyBatis框架 核心物件

1 存放引數和結果對映關係 存放sql 語句,我們需要定義乙個配置類 2 執行對資料庫的操作,處理引數和結果集的對映,建立和釋放資源,我們需要定義乙個執行器 3 有了這個執行器以後,我們不能直接呼叫它,而是定義乙個給應用層使用的api,它可以根據sql 的id 找到sql 語句,交給執行器執行 4 ...

Mybatis核心雜談

本文主要介紹mybatis的配置解析對應的class mybatis的全域性配置等,每個點都不會講太多細節的東西,只是提一下對應的點,更多細節的東西請有興趣的讀者自己去挖掘。來解析的,具體如下。型別 解析器 mybatis全域性配置檔案 xmlconfigbuilder xmlstatementbu...

MyBatis核心配置

resource database.properties jdbc.driver com.mysql.jdbc.driver jdbc.url jdbc mysql localhost 3306 test?characterencoding utf 8 jdbc.username root jdbc...