2016-4-26 最近在项目开发中,mybatis遇到一个很奇怪的问题,由于想在后台传一个int型0做为查询条件的数据,却被识别成了null。后面,排除问题时,查到mybatis源码对其进行了强制定义。因此解决问题能够改造mybatis源码,或者简单的作如下处理
前期写法:前端
<if test="sexId != null and sexId != ''>
AND sex_id = #{sexId,jdbcType=INTEGER}
</if>web
改造后写法:mybatis
<if test="sexId != null and sexId != '' or sexId ==0">
AND sex_id = #{sexId,jdbcType=INTEGER}
</if>spa
2016-4-28 Mybatis integer类型 0被识别为空字符串的解决办法code
正常来讲,0不为空也不是空字符串。因此,针对这个问题,解决办法是:若是类型为Integer类型,我就去掉 != ”的判断,只判断!=null便可。orm
这就要求在前端integer不能传''; 必须转化为null传递。ci