MyBatis 的真正強(qiáng)大在于它的映射語(yǔ)句堵第,也是它的魔力所在矾芙。由于它的異常強(qiáng)大脖岛,映射器的 XML 文件就顯得相對(duì)簡(jiǎn)單朵栖。如果拿它跟具有相同功能的 JDBC 代碼進(jìn)行對(duì)比颊亮,你會(huì)立即發(fā)現(xiàn)省掉了將近 95% 的代碼柴梆。MyBatis 就是針對(duì) SQL 構(gòu)建的,并且比普通的方法做的更好终惑。
SQL映射文件有很少的幾個(gè)頂級(jí)元素(按照它們應(yīng)該被定義的順序):1绍在。cache – 給定命名空間的緩存配置。2雹有。cache-ref – 其他命名空間緩存配置的引用偿渡。3。resultMap– 是最復(fù)雜也是最強(qiáng)大的元素霸奕,用來(lái)描述如何從數(shù)據(jù)庫(kù)結(jié)果集中來(lái)加載對(duì)象溜宽。4。sql – 可被其他語(yǔ)句引用的可重用語(yǔ)句塊质帅。5适揉。insert – 映射插入語(yǔ)句6.update – 映射更新語(yǔ)句留攒。7。delete – 映射刪除語(yǔ)句嫉嘀。8炼邀。select – 映射查詢語(yǔ)句
主要說(shuō)一下resultMap
resultMap 元素有很多子元素和一個(gè)值得討論的結(jié)構(gòu)。
constructor - 用于在實(shí)例化類時(shí)剪侮,注入結(jié)果到構(gòu)造方法中
idArg - ID 參數(shù);標(biāo)記出作為 ID 的結(jié)果可以幫助提高整體性能
arg - 將被注入到構(gòu)造方法的一個(gè)普通結(jié)果
id – 一個(gè) ID 結(jié)果;標(biāo)記出作為 ID 的結(jié)果可以幫助提高整體性能
result – 注入到字段或 JavaBean 屬性的普通結(jié)果
association – 一個(gè)復(fù)雜類型的關(guān)聯(lián);許多結(jié)果將包裝成這種類型
嵌套結(jié)果映射 – 關(guān)聯(lián)可以指定為一個(gè) resultMap 元素拭宁,或者引用一個(gè)
collection – 一個(gè)復(fù)雜類型的集合嵌套結(jié)果映射 – 集合可以指定為一個(gè) resultMap 元素,或者引用一個(gè)
discriminator – 使用結(jié)果值來(lái)決定使用哪個(gè) resultMap.