在使用Mabatis的时候,经常会用到if test来进行sql语句的拼接,尤其是string类型时候,经常使用<if test=”str != null and str != ””>来判空,但是如果是boolean类型却会导致只有true的时候能进入if,false的时候if永远无法执行
定位过程:
通过配置Mybatis配置打印具体执行的sql语句
mybatis:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
分别执行true和false参数的修改操作,发现两此修改操作,相差一个boolean类型的参数
多次试验还是一样的现象,后来查阅资料发现,是Mybatis的if test语句有问题,如果是boolean类型的参数,在<if test=””>中使用str != ”会导致值为false的时候无法通过判断,后来删除该判断语句就可以了。
具体原因暂时未探索,只记录解决方法,后续探索以后再补充。
版权声明:本文为cl135795680原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。