MyBatis(三)
?
1.session.commit()為什么會引起事物的提交?
先ctrl+鼠標左鍵點入commit方法中,然后ctrl+H找到DefaultSqlSession這個類,在這個類中找到如下的方法
然后進入這個方法
這里有一個邏輯關(guān)系表達式,運算的順序是? &&? ||? !的順序依次運算得到的結(jié)果是true,那么該方法的返回值是true
所以執(zhí)行器的提交,會引起事務(wù)的提交
2.session.close()會引起事務(wù)的回滾?(同上述方法相似,一步一步往上一層找,就可以找到答案,看到它底層的代碼)
最終找到
可以得到session.close()會引起事務(wù)的回滾
3.resultMap結(jié)果映射
在這需要注意的是resultType和resultMap不能同時存在(記住)
它主要解決了什么問題呢?
解決數(shù)據(jù)庫表中Table中的字段和Java實體類中的字段名稱不一致問題,需要我們手工映射
以查詢語句為例
在小配置中首先添加一個節(jié)點<resultMap>
在sql語句的節(jié)點中resultType屬性要改為resultMap他的值為上面resultMap節(jié)點的id的值
然后在大配置中也需要添加一個節(jié)點<settings>
這個的屬性值有三個:NONE,PARTIAL(默認),FULL
4.添加后返回自增列的值
實現(xiàn)的結(jié)果為
5.多條件查詢
多條件查詢有兩種方式Map? 和 根據(jù)索引
首先第一種Map
第二種 根據(jù)索引號Index
6.智能標簽
智能標簽有 if? where? foreach? list array
(1)智能標簽if where結(jié)合
首先聲明方法在接口中
然后再小配置中添加節(jié)點
最后編寫測試類? 測試方法
(2)智能標簽foreach array
首先聲明方法在接口中
然后再小配置中添加節(jié)點
最后編寫測試類? 測試方法
(3)list<Integer>
?
?
(4)list<自定義>
7.util包:工具類
首先要先創(chuàng)建一個util包,MyBatisUtil類
MyBatisUtil類中
?
轉(zhuǎn)載于:https://www.cnblogs.com/my-123/p/8469460.html
總結(jié)
以上是生活随笔為你收集整理的MyBatis(三)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Codeforces940(A-F)
- 下一篇: tomcat的根路径设置