MyBatis框架的惊天大bug之空字符串会转换为0

问题:入参value为空字符串,结果返回了value为0的数据

原因:mybatis把空字符串转换成了0,所以查出了对应value为0的数据(刨根问题可以去看源码)

 

入参:

 

 

代码:

 

 

 

 这里sql注意写法 <if test=" "></if>  里面判断要写成map.isyb == 1,如果写成map.isyb == '1' 无效

返回值:

 

 

sql打印:

 

 执行了map.isyb == 0的语句,说明mybatis把空字符串转成了0。具体如何转,可以自己去看源码

 

如何避免:用null代替" "

入参:

 

 sql打印:

 

 

map.isyb == 0 和 map.isyb == 1 都没有执行,查询全量数据。

posted on 2022-05-23 15:16  shenhaha  阅读(924)  评论(0编辑  收藏  举报

有用的话麻烦点个推荐哈