mybatis 之 if test 条件查询,参数为0时,查询出所有结果

一、工作问题:

在工作中发现 使用MyBatis 时 在boolean 如果传值为 0时 ,并没有按照"0"进行筛选选,而是查出了所有的数据。

"<if test='exeStatus!=null and exeStatus!=" "'>",
 
" and exe_status=#{exeStatus}",
 
"</if>",

二、mybatis源码:

首先获取两个判断对象的类型,当拿一个字符串和一个数字判断的时候,

当Mybatis发现,这个字符串是可以转换成数字的,那么就会把这个字符串转成数字,然后再和这个数字判断。

return s.length() 0 ? 0.0D : Double.parseDouble(s)

三、解决:

直接删除 and exeStatus!=\"\"  即可

"<if test='exeStatus!=null '>",
 
" and exe_status=#{exeStatus}",
 
"</if>",

  

posted @ 2023-05-17 16:28  jason饼干大怪兽  阅读(674)  评论(0)    收藏  举报