mybatis choose when 和 if
时间: 2023-12-16 16:19:44 浏览: 83
choose标签是MyBatis中的一个条件判断标签,类似于Java中的switch语句,用于根据不同的条件执行相应的代码块。choose标签包含多个when标签和一个otherwise标签,每个when标签都有一个test属性,用于指定条件表达式。当某个when标签的条件成立时,其内部的代码被执行;如果所有的when标签都不成立,那么otherwise标签内部的代码将被执行。
在MyBatis中,choose标签通常用于构建动态SQL语句,可以根据不同的条件拼接不同的SQL片段,以实现灵活的查询条件。
举个例子,如下面的代码片段所示:
<select id="getUserDy02" parameterType="map" resultType="user">
select * from user
<where>
<choose>
<when test="uname!=null and uname!=''">
uname like '%${uname}%'
</when>
<when test="sex!=null and sex!=''">
and sex=#{sex}
</when>
<otherwise>
1=1
</otherwise>
</choose>
</where>
</select>
在上面的例子中,当传入的参数中的uname不为空时,将拼接一个模糊查询条件;当传入的参数中的sex不为空时,将拼接一个精确查询条件;否则,将拼接一个恒定为true的条件。
阅读全文