<!-- 多条件查询 -->
<select id="users" parameterType="User" resultMap="luser">
SELECT *
FROM user WHERE name like #{name}
<if test="age!=null">
and age > #{age}
</if>
</select>
<!--多条件选中1个 -->
<!--它们类似于Java的switch选择结构:choose对应switch,when对应case,otherwise对应default -->
<select id="dusers" parameterType="User" resultMap="luser">
SELECT *
FROM user WHERE 1=1
<choose>
<when test="name!=null">
and name like #{name}
</when>
<!-- <when test="age!=null">
and age > #{age}
</when> -->
<otherwise>
and age > 23
</otherwise>
</choose>
</select>
<!-- where标签 -->
<!-- where标签的工作工程如下:如果此where标签包含的子标签中含有返回值,其将插入一个“where”;如果此where标签返回的内容以AND 或OR 开头,则将AND和OR清除 -->
<select id="wseluser" parameterType="User" resultMap="luser">
SELECT *
FROM user
<where>
<if test="name!=null">
and name like #{name}
</if>
</where>
</select>
<!-- 修改-->
<update id="updateBlog" parameterType="Blog">
update blog
<set>
<if test="content!=null">
content=#{content},
</if>
<if test="type!=null">
type=#{type}
</if>
</set>
<where>
id=#{id}
</where>
</update>
Mybatis动态sql
原文:http://www.cnblogs.com/cj870522/p/6368200.html