关于mybatis遇到Integer类型的参数时动态sql需要注意条件
作者:yangyansong789 发布时间:2021-10-13 04:59:39
标签:mybatis,Integer,参数,动态sql
mybatis Integer类型参数动态sql注意条件
例如以下拼接的动态sql
<if test="work_status !=null and work_status !='' ">
and T.status=#{work_status,jdbcType=INTEGER}
</if>
当work_status为0时,Mybatis会将0解析为了空字符串‘’,这样if判断就为false,如果想正确添加and后的查询条件,应该改成
<if test="work_status !=null ">
and T.status=#{work_status,jdbcType=INTEGER}
</if>
mybatis的坑——Integer类型参数解析问题
有时候我们使用实体类传递参数时
有些属性会被设置为Integer类型,比如status、sort等,在这里,使用Integer类型参数作为条件时,要注意一点:例如
<if test="bean.activitySort != null and bean.activitySort !=""">
AND activity_sort = #{bean.activitySort,jdbcType=VARCHAR}
</if>
这里对于bean.activitySort的判断正常情况下如果activitySort是String类型,先判空,再判断是否是空字符串,这样是正常的,但是如果activitySort是Integer类型参数,那么使用时就需要注意,此处不能对activitySort进行空字符串的判断,因为什么呢?
因为mybatis在解析Integer类型数据时
如果数据值为0,会将0解析为空字符串,这样你传入的参数就成为无效的了,所以正常使用Integer类型参数应该是下面这样:
<if test="bean.activitySort != null">
AND activity_sort = #{bean.activitySort,jdbcType=VARCHAR}
</if>
来源:https://blog.csdn.net/yangyansong789/article/details/80618116


猜你喜欢
- C语言数据结构之二叉树的非递归后序遍历算法前言:前序、中序、后序的非递归遍历中,要数后序最为麻烦,如果只在栈中保留指向结点的指针,那是不够的
- Spring的事务隔离级别和事务的传播行为是面试中经常考察的问题,做个简单的总结。传播行为在SpringBoot中通过Transaction
- 很多时候,我们需要使用C#中的WebClient 来收发数据,WebClient 类提供向 URI 标识的任何本地、Intranet 或 I
- BigDecimal 和 0 比较大小调用BigDecimal中的compareTo方法, 如:int i = bigDecimal.com
- @RequestMapping注解注意点类上加没加@RequestMappin注解区别1.如果类上加了 @RequestMappin注解,那
- Maven是项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。Maven是一个项目管理工具,它包
- 1,compareTo(Object o)方法是java.lang.Comparable<T>接口中的方法,当需要对某个类的对象
- 一、什么是过滤器过滤器是对数据进行过滤,预处理过程,当我们访问网站时,有时候会发布一些敏感信息,发完以后有的会用*替代,还有就是登陆权限控制
- 死锁在多线程的情况下,会出现数据不同步情况, 而为了避免这种情况,之前也说了:界区实现方法有两种,一种是用synchronized,一种是用
- 每个Handler对象与创建它的线程相关联,并且每个Handler对象只能与一个线程相关联。Handler一般有两种用途:1)执行计划任务,
- 本文讨论了Spring Data JDBC如何实现DDD中聚合根存储的设计思路,其中主要讨论了是不是每个实体都需要一个对应数据表,这种问题需
- 在本文中,我们将看到几个关于如何在Java 8中对List进行排序的示例。1.按字母顺序排序字符串列表List<String>
- 这篇文章主要介绍了新手学习微服务SpringCloud项目架构搭建方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学
- 生成excel并导出到对应位置package tech.BurtonPratice; import org.apache.poi.hssf.
- 排序二叉树概念二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),亦称二叉搜索树。是数据
- 一、什么是加壳?加壳是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作。大多数病毒就是基于此原理。二、加壳作
- Ireport的安装及使用一、 安装ireport1.点击安装包,可以一直点击下一步,安装完成。2.安装完成后,要在如下安装目录下添加ojd
- 1.前言string是属于引用类型的,这个大家都知道吧?但是平常在使用的过程中,发现它还是拥有一些值类型的特征的,这到底是为什么呢?原因就是
- 本项目是前端vue3,后端springboot开发 需求为:前端导入表格,后端处理表格存储数据,点击按钮可以导出表格。上传效果:前端点击上传
- 本文主要介绍了C# 数组删除元素的实现示例,具体如下:using System;using System.Collections.Gener