1. 程式人生 > >MyBaits基本操作,為什麽session.commit()可以引起事物提交?ResultMap結果映射,執行添加後返回自增列的值,多條件查詢,智能標簽,工具類

MyBaits基本操作,為什麽session.commit()可以引起事物提交?ResultMap結果映射,執行添加後返回自增列的值,多條件查詢,智能標簽,工具類

info log list image mit fault 類型 工具類 自增列

1.為什麽session.commit()可以引起事務的提交?

首先打開commit()源碼,ctrl+H打開它的實現類DefaultSession,找到它的commit方法

技術分享圖片

ctrl+左鍵executor,進入它的接口並打開它的實現類BaseExecutor

技術分享圖片

技術分享圖片

在最底層的commit()方法裏邊進行了事務的提交,所以SqlSession.commit()方法可以引起事務的提交

2.ResultMap結果映射

為什麽需要ResultMap?

因為DB中的Table的列名和Java對象中的屬性名不一致時需要手工映射

ResultMap實現代碼

技術分享圖片

註:select標簽中的resultMap和resultType不允許同時出現

3.執行添加後返回自增列的值

首先在insert節點中添加一個selectKey節點配置如下

技術分享圖片

屬性keyProperty的值要和實體類中的id屬性一致

4.多條件查詢

多條件查詢可以使用Map集合查詢,也可以使用索引號查詢

技術分享圖片

實體類實現代碼

技術分享圖片

技術分享圖片

5.智能標簽

智能標簽分為:where ,if ,choose,foreach

where if類似於多重if判斷

技術分享圖片

choose類似於switch結構

技術分享圖片

foreachArray類型

技術分享圖片

foreach<自定義>

技術分享圖片

foreachList類型

技術分享圖片

MyBaits基本操作,為什麽session.commit()可以引起事物提交?ResultMap結果映射,執行添加後返回自增列的值,多條件查詢,智能標簽,工具類