mybatis if 数字,mybatis if判断数字
00-1010 if-test数字判断坑mybatis测试判断注意事项
00-1010在项目中,无意中发现一个用于判断数字的if没有起到任何作用。代码如下所示
if test=timeType!=null和timeType!= 和timeType==3 以及./如果查询数据后发现mybatis是用OGNL表达式解析的,其中数字‘3’解析成字符。java是强类型的,char和一个字符串会导致不相等,所以if标签中的sql不会被解析。
所以应该改为:
if test=timeType!=null和timeType!= 且时间类型== 3 。tostring()和./如果后来发现这个问题确实解决了,就在此记录下来。
00-1010使用mybatis进行判断时,一定要注意传入的数据类型是否与判断的目标值类型一致。
在最近的开发过程中,以下判断方法被用来错误地输入一个整数数据:
if test=appType!=null和appType!= 和a.c _ appType=# {apptype}/if,其中appType是整数数据。可以看到,测试判断中使用了appType!=。
在业务功能测试过程中,发现传入值为0时,条件过滤器不起作用。经过调试,发现mybatis会将空字符串转换成double类型的0.0,如下图所示:
同样,整数数据也会被转换成双精度类型,如下图所示:
所以在mybatis判断的时候,数字0和空字符串是相等的,但是在我们的if判断中,这个条件只有在不相等的时候才会起作用。
所以在使用mybatis进行判断时,一定要注意类型是否一致,不要对数字类型判断空字符串的情况。
以上个人经验,希望能给大家一个参考,也希望大家能支持盛行的IT。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。