Mybatis Integer类型参数值为0时得到为空的解决方法
2020-02-13 13:20
761 查看
今日遇到的问题:
查询版本信息时,由于version是Integer类型,所以当前台选择版本为0时,变成了查询了所有的版本信息。
sql片段:
</if> <if test="version != null and version != '' "> AND a.version = #{version} </if>
原因:
MyBatis因自身原因默认了 Integer类型数据值等于0时 为 ""(空字符串)
解决办法:
1. 某些情况下,可以在Controller处就拦截,并向前台提示,比如:“必须输入有效数字”,不让他再往后传。
2. 将判断条件version != ''删去,不让它判断。
如:
</if> <if test="version != null "> AND a.version = #{version} </if>
弊端:就是当有哪位仁兄真的用这个方法传了个空字符串,就无法判断。
3. 单独加上当version为0的特殊情况
如:
</if> <if test="version != null and version != '' or version ==0 "> AND a.version = #{version} </if>
当然,如果想默认输入为0时查询所有(类似于上述问题示例)或者是后面想转为空字符串,
可以不用改,也算是巧用"bug"。
以上就是本次介绍的全部知识点内容,感谢大家对脚本之家的支持。
您可能感兴趣的文章:
相关文章推荐
- MyBatis 参数类型为String时常见问题解决方法
- MyBatis 参数类型为String时常见问题及解决方法
- MyBatis 参数类型为String时常见问题解决方法
- MyBatis 参数类型为String时常见问题及解决方法
- MyBatis 参数Integer类型 值为0时被解析为空字符串
- 升级NSIS3.0a0后调用dll出错:“发生意外,尝试运行*时出错“-解决方法:修改system调用函数时的参数类型
- SQL中函数 replace 的参数1的数据类型ntext无效的解决方法
- Java利用反射来获取一个方法的 范型化参数 Vector<Integer>的类型
- MyBatis 多参数(对象)查询(foreach)解决方法
- 在ASP.NET里通过URL传递参数得到乱码的解决方法
- WCF客户端引用带有 int bool 类型的方法时,会自动加上一个Specified参数的 解决方法 Web Reference for a WCF Service has Extra “IdSpecified” Parameter -摘自网络
- SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇基础类型和日期类型报400错误解决方法
- Mybatis Integer类型,值为0被认为是空字符串的解决办法
- mybatis返回map类型数据空值字段不显示(三种解决方法)
- mybatis返回map类型数据空值字段不显示(解决方法)
- 单元测试时候使用[ClassInitialize]会该方法必须是静态的公共方法,不返回值并且应采用一个TestContext类型的参数报错的解决办法
- C# 001 --- 正确的删除一个控件的事件函数 --- 解决错误: “A”不包含“B”的定义,并且找不到可接受类型为“A”的第一个参数的扩展方法“B”(是否缺少 using 指令或程序集引用?)
- 解决mybatis查询日期时间数据得到long类型数据的问题
- mybatis返回map类型数据空值字段不显示(三种解决方法)
- Mybatis Integer类型,值为0被认为是空字符串的解决办法