MyBatis详解3——动态SQL的使用

一、标签

有一个非必填项:photo
MyBatis详解3——动态SQL的使用_第1张图片

二、标签

当有多个选填项,则考虑用if标签和trim标签结合
1.prefix:表示整个语句块,以prefix的值作为前缀
2.suffix:表示整个语句块,以suffix的值作为后缀
3.prefixOverrides:表示整个语句块要去除掉的前缀
4.suffixOverrides:表示整个语句块要去除掉的后缀

<insert id="add4">
        insert into userinfo
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="username!=null">
                username,
            </if>
            <if test="password!=null">
                password,
            </if>
            <if test="photo!=null">
                photo
            </if>
        </trim>
        values
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="username!=null">
                #{username},
            </if>
            <if test="password!=null">
                #{password},
            </if>
            <if test="photo!=null">
                #{photo}
            </if>
        </trim>
    </insert>

三、标签

1.当不传递任何参数时,where标签会进行全查
MyBatis详解3——动态SQL的使用_第2张图片
MyBatis详解3——动态SQL的使用_第3张图片
2.where标签可以自动的去掉去前面的关键字
MyBatis详解3——动态SQL的使用_第4张图片
MyBatis详解3——动态SQL的使用_第5张图片
MyBatis详解3——动态SQL的使用_第6张图片
3.将where标签改为trim标签
MyBatis详解3——动态SQL的使用_第7张图片

四、标签

自动将后面的逗号删除掉

MyBatis详解3——动态SQL的使用_第8张图片
在这里插入图片描述
使用trim标签可以代替set标签
MyBatis详解3——动态SQL的使用_第9张图片

五、标签

1.collection:绑定方法参数中的集合,如 List,Set,Map或数组对象
2.item:遍历时的每⼀个对象
3.open:语句块开头的字符串
4.open:语句块结束的字符串
5.separator:每次遍历之间间隔的字符串
MyBatis详解3——动态SQL的使用_第10张图片

你可能感兴趣的:(Spring,mybatis,sql,java)