续上篇:MyBatis学习笔记-07.MyBatis动态Sql语句if、where、trim、set
本次将继续记MyBatis动态Sql语句的choose和foreach:
一、choose(较少应用):
有时我们不想应用到所有的条件语句,而只想从中择其一项。针对这种情况,MyBatis 提供了 choose 元素,它有点像 Java 中的 switch 语句。这里我们以mybatis官方文档中给出的例子简单看。需搭配when标签元素、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>