mybatis之獲取SqlSession物件

2021-10-05 17:45:13 字數 1223 閱讀 1761

在opensession()處加上斷點並執行—>defaultsqlsessionfactory類的opensession()方法

@override

public sqlsession opensession()

進入opensessionfromdatasource,裡面包含資料來源和事務以及建立了四大物件的executor

private sqlsession opensessionfromdatasource

(executortype exectype, transactionisolationlevel level,

boolean autocommit)

catch

(exception e)

finally

}

executor 非常重要,進入configuration.newexecutor(tx, exectype);看executor 建立過程,在這裡會根據defaultexecutortype 型別建立不同的executor 【預設是******,詳細見mybatis官方文件】,如果開啟了二級快取,

會建立cachingexecutor。

最後執行interceptorchain.pluginall(executor);使用每個***對executor 進行包裝並返回【與以後寫外掛程式息息相關】。

public executor newexecutor

(transaction transaction, executortype executortype)

else

if(executortype.reuse == executortype)

else

if(cacheenabled)

executor =

(executor) interceptorchain.

pluginall

(executor)

;return executor;

}

最後加到defaultsqlsessionfactory類建立new defaultsqlsession(configuration, executor, autocommit);並返回。

mybatis中獲取引數

1 方式 parameter是數字時用 模糊查詢 時用。例 select from account where userid select from account where userid 123 select from account where userid like select from ...

mybatis學習筆記三之mybatis外掛程式

一 外掛程式介紹 一般情況下,開源框架都會提供外掛程式或其他形式的擴充套件點,供開發者自行擴充套件。一是增加了框架的靈活性 二是開發者可以結合實際需求,對框架進行擴充套件。以mybatis為例,我們可基於mybatis外掛程式機制實現分頁 分表 監控等功能,在無形中增強功能。二 mybatis外掛程...

mybatis不提交事務獲取主鍵

transactional propagation propagation.required,rollbackfor exception.class insert運算元據庫時候,先得到對應的主鍵然後提交事務插入對應資料 例 insert into table values user.insert t...