mybatis學(xué)習(xí)筆記
簡(jiǎn)介
入門
XML配置
XML
項(xiàng)目相關(guān)筆記
<![CDATA[ ]]>
在使用mybatis 時(shí)我們sql是寫在xml 映射文件中,如果寫的sql中有一些特殊的字符的話麦撵,在解析xml文件的時(shí)候會(huì)被轉(zhuǎn)義厅须,但我們不希望他被轉(zhuǎn)義丸逸,所以我們要使用<![CDATA[ ]]>來(lái)解決脖律。
<![CDATA[ ]]> 是什么牺弹,這是XML語(yǔ)法喇澡。在CDATA內(nèi)部的所有內(nèi)容都會(huì)被解析器忽略迅栅。
如果文本包含了很多的"<"字符 <=和"&"字符——就象程序代碼一樣,那么最好把他們都放到CDATA部件中晴玖。
但是有個(gè)問(wèn)題那就是 <if test=""> </if> <where> </where> <choose> </choose> <trim> </trim> 等這些標(biāo)簽都不會(huì)被解析读存,所以我們只把有特殊字符的語(yǔ)句放在 <![CDATA[ ]]> 盡量縮小 <![CDATA[ ]]> 的范圍。
主鍵自增
keyProperty
selectKey 語(yǔ)句生成結(jié)果需要設(shè)置的屬性呕屎。
resultType
生成結(jié)果類型让簿,MyBatis 允許使用基本的數(shù)據(jù)類型,包括String秀睛、int類型尔当。
order
1.BEFORE,會(huì)先選擇主鍵蹂安,然后設(shè)置keyProperty椭迎,再執(zhí)行insert語(yǔ)句;
2.AFTER田盈,就先運(yùn)行insert語(yǔ)句再運(yùn)行selectKey 語(yǔ)句畜号。
BEFORE
AFTER
statementType
MyBatis 支持STATEMENT,PREPARED和CALLABLE的語(yǔ)句形式允瞧, 對(duì)應(yīng)Statement简软,PreparedStatement 和CallableStatement響應(yīng)
chose(when,otherwise)
if標(biāo)簽是與(and)的關(guān)系蛮拔,而choose是或(or)的關(guān)系。choose標(biāo)簽是按順序判斷其內(nèi)部when標(biāo)簽中的test條件出否成立痹升,如果有一個(gè)成立建炫,則choose結(jié)束。當(dāng)choose中所有when的條件都不滿則時(shí)疼蛾,則執(zhí)行otherwise中的sql踱卵。
foreach
<insert id="batchInsert"parameterType="java.util.List">
<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
select LAST_INSERT_ID();
</selectKey>
insert into t_qrcode
(
uuid,
batchId,
picFileName,
createTime,
modifyTime
)
values
<foreach collection="list" item="item" index="index" separator="," >
(
#{item.uuid},
#{item.batchId},
#{item.picFileName},
now(),
now()
)
</foreach>
</insert>