Mybatis原始碼解析 KeyGenerator

2021-09-29 02:51:58 字數 863 閱讀 4501

該介面用於insert時的主鍵生成,在insert時自動生成主鍵並注入到使用者引數中去。

public

inte***ce

keygenerator

只能用於取回資料庫生成的自增主鍵,對於不支援主鍵自增的資料庫無法使用。

對應mybatis-config.xml中的usegeneratedkeys全域性配置,以及節點的usegeneratedkeys屬性

jdbc3keygenerator.processbefore()是空實現,只實現了processafter()

example:

insert into user(username,pwd) values 

(#,#)

foreach

>

insert

>

執行流程如圖所示

針對所有資料庫,無論是否支援主鍵自增均支援。

before

在執行insert之前執行中的獲取主鍵值,然後根據將得到的resultset設定到使用者實參中去得到完整的使用者實參,然後insert到資料庫中去

after

其原理是在執行insert之後,執行中的獲取主鍵值,然後根據將得到的resultset設定到使用者實參中去

執行流程如圖所示

mybatis原始碼解析

最近閱讀了許久的mybatis原始碼,小有所悟。同時也發現網上有許多優秀的mybatis原始碼講解博文。本人打算把自己閱讀過的 覺得不錯的一些博文列出來。以此進一步加深對mybatis框架的理解。其實還有乙個目的是,本人也想寫一系列博文來分享自己對mybatis的理解。然而。個人文筆太差,列出的這些...

mybatis原始碼解析

類列表 sqlsessionfactory 說明 sqlsession物件的工場用於建立sqlsession。sqlsession 說明 執行sql的介面類。configuration 說明 資料庫連線和sql語句配置類。executor 說明資料操作方法介面類 步驟 載入xml檔案到xmlconf...

Mybatis原始碼解析

mybatis原始碼解析 一 mybatis 流程三個階段 1 初始化階段 讀取xml 配置檔案和註解中的配置資訊,建立配置物件,並完成各個模組的初始工作 3 資料處理階段 通過 sqlsession 完成sql解析,引數的對映 sql的執行 結果的反射解析過程 二 簡化版 mybatis 實現思路...