mybatis学习笔记

2017-06-01  本文已影响0人  尘封_12d3

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>
上一篇下一篇

猜你喜欢

热点阅读