动态sql查询其实就是根据不同的条件进行查询
搭配一些标签的使用:
1.if标签:
<select id="getBlogIf" parameterType="map" resultType="blog">
select * from blog where 1=1
<if test="title!=null">
and title=#{title}
</if>
<if test="author!=null">
and author=#{author}
</if>
</select>
2.when标签:会自动的帮我们区分开头的and和or是否需要去除,以及where 的是否去除
对上诉代码进行where优化:
<select id="getBlogIf" parameterType="map" resultType="blog">
select * from blog
<where>
<if test="title!=null">
and title=#{title}
</if>
<if test="author!=null">
and author=#{author}
</if>
<where>
</select>
3.set标签:和where标签类似,只不过条件的分割变为了“ ,”号
4.sql标签的使用:
<sql id="if-title-author" >
<if test="title!=null">
and title=#{title}
</if>
<if test="author!=null">
and author=#{author}
</if>
</sql>
<select id="getBlogIf" parameterType="map" resultType="blog">
select * from blog
<where>
<include refid="if-title-author"></include>
</where>
</select>
5.还有其他标签的使用,请查看mybatis官方文档
Mybatis官方文档
本文介绍了MyBatis中动态SQL的使用技巧,包括if、when、set和sql标签的应用场景,通过实例展示了如何根据不同条件灵活构造SQL查询语句。
2159

被折叠的 条评论
为什么被折叠?



