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 都没有执行,查询全量数据。
原创不易,如果感觉不错,希望给个推荐!您的支持是我写作的最大动力!