choose, when, otherwise
这个其实就相当于java 中的 switch语句
otherwise 就是没有匹配到,默认的值
<select id="findActiveBlogLike" resultType="Blog"> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <choose> <when test="title != null"> AND title like #{title} </when> <when test="author != null and author.name != null"> AND author_name like #{author.name} </when> <otherwise> AND featured = 1 </otherwise> </choose> </select>
trim, where, set 标签
trim 标签 里面又四个属性
1、trim 有四个属性
2、prefix,suffix 表示在trim标签包裹的部分的前面或者后面添加内容(注意:是没有prefixOverrides,suffixOverrides的情况下)
3、如果有prefixOverrides,suffixOverrides 表示覆盖Overrides中的内容。
4、如果只有prefixOverrides,suffixOverrides 表示删除。
这里 其实 就是 在xml sql 语句中添加一些前缀 后缀
举个例子
<updateid="testTrim"parameterType="com.mybatis.pojo.User"> update user <trim prefix="set" suffixOverrides=","> <if test="cash!=null and cash!=''"> cash= #{cash}, </if> <if test="address!=null and address!=''"> address= #{address}, </if> </trim> <where>id = #{id}</where> </update>
foreach标签
<select id="selectPostIn" resultType="domain.blog.Post"> SELECT * FROM POST P WHERE ID in <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> </select>
bing 标签 这个标签的作用应该就是 在一些变量拼接一些 值
比如像下面:
<select id="selectFlowForUpdate" resultMap="BaseResultMap" parameterType="java.lang.String"> <bind name="ENTR_ID" value="'%' + _parameter" /> select * from TC_ENTR_FLOW where ENTR_ID like #{ENTR_ID} </select>
网友评论