mybatis学习笔记
简介
入门
XML配置
XML
项目相关笔记
<![CDATA[ ]]>
在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]>来解决。
<![CDATA[ ]]> 是什么,这是XML语法。在CDATA内部的所有内容都会被解析器忽略。
如果文本包含了很多的"<"字符 <=和"&"字符——就象程序代码一样,那么最好把他们都放到CDATA部件中。
但是有个问题那就是 <if test=""> </if> <where> </where> <choose> </choose> <trim> </trim> 等这些标签都不会被解析,所以我们只把有特殊字符的语句放在 <![CDATA[ ]]> 尽量缩小 <![CDATA[ ]]> 的范围。
主键自增
keyProperty
selectKey 语句生成结果需要设置的属性。
resultType
生成结果类型,MyBatis 允许使用基本的数据类型,包括String、int类型。
order
1.BEFORE,会先选择主键,然后设置keyProperty,再执行insert语句;
2.AFTER,就先运行insert语句再运行selectKey 语句。
BEFORE
AFTER
statementType
MyBatis 支持STATEMENT,PREPARED和CALLABLE的语句形式, 对应Statement,PreparedStatement 和CallableStatement响应
chose(when,otherwise)
if标签是与(and)的关系,而choose是或(or)的关系。choose标签是按顺序判断其内部when标签中的test条件出否成立,如果有一个成立,则choose结束。当choose中所有when的条件都不满则时,则执行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>
网友评论