首页 > 其他分享 >记录使用mybatis时踩到的坑-integer类型数据为0时,会判断为:等于空字符串为true

记录使用mybatis时踩到的坑-integer类型数据为0时,会判断为:等于空字符串为true

时间:2023-03-31 17:37:26浏览次数:31  
标签:status 判断 表时 查询 mybatis integer true

因为做查询操作时,需要设置为传入参数值才进行查询,于是判断条件是:

status != null and status != ''

即mapper层的写法:

<if test="status != null and status != ''">and status=#{status}</if>

 

但设计表时,默认status=0表示正常状态,status=1表示其他状态。当传入status=0进行查询时,发现筛选条件失效,即会将status=0和status=1的都查询出来。

经过排查发现,当status=0时,mybatis会认为status!=''为false(即当status=0时,status==''为true),所以无法进入status的条件判断。

解决办法:

设计表时,尽量避免status=0的默认值设置;

或者去掉status!=''的判断,但这样也会造成当status不传值时,将所有状态下的记录查出来。

标签:status,判断,表时,查询,mybatis,integer,true
From: https://www.cnblogs.com/hongdanni/p/17276950.html

相关文章

  • MyBatis 框架的多表查询的实现
    1、表与表的联系类型一对一(1:1)一对多(1:n或n:1)多对多(n:m)2、Mybatis中实现多表查询的重要标签resultMap在Mybatis框架中,resultMap标签可以表示两个表之间的一对多和一对一关系。如:一个系可以有多个学生,如果想查询每个系的学生信息时,可以在Depar......
  • 你还在手写 join 联表查询?MyBatis-Plus 这样写太香了!
    使用方法安装Maven<dependency><groupId>com.github.yulichang</groupId><artifactId>mybatis-plus-join</artifactId><version>1.2.4</version></dependency>Gradleimplementation'com.github.yulic......
  • MyBatis 框架的常用优化方法
    优化1:单独使用MyBatis时,可以封装一个用来获取MyBatis中Session的工具类(1)工具类MybatisUtil将Mybatis框架中的Session对象的获取和关闭封装成一个类;(2)UserDaoImpl中,改为对MybatisUtil类的调用。 优化2:将连接字符串写入配置文件(1)阅读database.prop......
  • MyBatis框架的基本CRUD命令
    1、局部SQL配置文件重要标签说明:作用:把sql语句保存在Mybatis的局部配置文件中,给某个数据访问类使用;根节点为<mapper>…</mapper>;namespace:命名空间,其值为某一个dao层实现类的具体路径,表示这个类要使用相应的SQL语句。这个具体路径不要自己写,可以选中该类,右键,选择“copy......
  • MyBatis参数传递
    MyBatis接口方法中可以接受各种各样的参数,MyBatis底层对于这些参数进行不同的封装处理方式**单个参数:1.POJO类型:2.Map集合:3.Collection:4.List:5.Array:6.其他类型:*多个参数:封装为map集合map.put("arg0",参数......
  • MyBatis 框架基本使用流程
    1、编写Mybatis主配置文件: mybatis.xml中重要标签说明:<!--配置数据库连接环境:driver、url、username、password--><environmentsdefault="mysql">//设置当前要使用的数据库<!--开始配置mysql--><environmentid="mysql">//给当前要使用的数据库环境命名,要唯一<......
  • JDBC和MyBatis数据库访问技术
    传统的JavaWeb应用开发时,一般使用JDBC进行数据库连接和操作SQL命令。但是,随着互联网技术的飞速发展,使用JDBC已经满足不了项目的开发需求,出现了Hibernate、MyBatis等一些优秀的持久层框架,它们结合了JDBC的优点,使得开发简捷、规范、快速,系统易维护、易扩展。1.1JDBC数据库访......
  • MyBatis 随笔
    MyBatis传参parameterTypeparameterType:接口中方法参数的类型,类型的完全限定名或别名如:parameterType="java.lang.Integer"parameterType="int"这个属性是可选的,因为可以推断出具体传入语句的参数,默认值为未设置(unset)。接口中方法的参数从java代码传入到mapper文件的......
  • pandas中的inplace参数,将变量值赋给inplace= True 的结果,输出为none
    pandas中的inplace参数,将变量值赋给inplace=True的结果,输出为none#在学习drop函数是遇见将变量值赋给inplace=True的结果,输出为noneimportpandasaspdimportnum......
  • Mybatis动态SQL映射
    Mybatis动态SQL映射动态SQL映射1.if结构test里面的and或or必须小写2.trim-if多条件结构3.where-if多条件结构4.choose-when-otherwise多选一结构5.foreach循环结......