mybatis中的坑
在实际开发过程中我踩到了mybatis的一个坑,我觉得值得记录、分享一下。
-
问题描述:表中有四条数据(如下图所示),有一个字段(firmware_status)是描述状态的,现在我要查的是状态为0的,在mybatis xml中是这样写的,结果返回了全部数据,预期结果是返回三条数据的。
-
问题分析:这时候我们肯定是看执行的sql了是怎样的?
-
问题发现:我们发现问题了,这段代码并没有执行,那么只有一个问题,判断条件执行为false,但是确确实实是有值的,而且为0,那究竟是什么原因导致它判断为false呢?
<if test="p.firmwareStatus != null " and p.firmwareStatus != ''>
AND firmware_status = #{p.firmwareSt