关于mybatis:MyBatis动态sql实现技巧如何判断Boolean类型

12次阅读

共计 349 个字符,预计需要花费 1 分钟才能阅读完成。

当查问条件有 Boolean 类型的时候,为 false 时查问有效

<if test="isOk != null and isOk !=''">
  and is_ok = #{isOk}
</if>
  • 当 isOk = false 时,并未查问出 is_ok 对应的后果来
-- sql: 没有拼接 where = isOk 的条件
select * from tableName;
  • 当 isOk = true 时,查问后果正确
-- sql
select * from tableName where is_ok = true ;

问题所在:

<if test="isOk != null and isOk !=''">

正确写法

  • Boolean 类型默认值为 null,只须要判断是否为 null
<if test="isOk != null">
      and is_ok = #{isOk}
</if>
  • isOk = ” , 会将 ” 转换成 null 解决
正文完
 0