mybatis if test 之 0当做参数传入出问题

2024-09-08 10:18

本文主要是介绍mybatis if test 之 0当做参数传入出问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先前端传入了参数

if(StringUtils.isNotBlank(status)){requestParam.setProperty("status", Integer.parseInt(status));}
List<SuperPojo> applicationList =  groupDao.getApplicationListByReviewStatusAndMember(requestParam);


mapper的sql文为

<select id="getApplicationListByReviewStatusAndMemberCount" parameterType="com.financial.core.pojo.SuperPojo"resultType="Integer" flushCache="true">SELECTcount(1)FROMreview_status rsLEFT JOIN member_info mi ON mi.member_id = rs.member_idLEFT JOIN member m ON rs.member_id = m.member_id<where><if test="name!=null and name!=''">AND mi.name like CONCAT('%',#{name},'%')</if><if test="telephone!=null and telephone!=''">AND mi.telephone = #{telephone}</if><if test="status!=null and status!=''">AND rs.status = #{status}</if><if test="applicationTimeStart!=null and applicationTimeEnd!=null">and rs.update_time >= #{applicationTimeStart} and rs.update_time <DATE_ADD(#{applicationTimeEnd},INTERVAL 1 DAY)</if></where>ORDER BY rs.update_time ASC</select>
解决方法:

mybatis的参数传入为0的时候会把0当做空处理掉

改成如下情况即可

<select id="getApplicationListByReviewStatusAndMemberCount" parameterType="com.financial.core.pojo.SuperPojo"resultType="Integer" flushCache="true">SELECTcount(1)FROMreview_status rsLEFT JOIN member_info mi ON mi.member_id = rs.member_idLEFT JOIN member m ON rs.member_id = m.member_id<where><if test="name!=null and name!=''">AND mi.name like CONCAT('%',#{name},'%')</if><if test="telephone!=null and telephone!=''">AND mi.telephone = #{telephone}</if><if test="status!=null and status!='' or 0 == status">AND rs.status = #{status}</if><if test="applicationTimeStart!=null and applicationTimeEnd!=null">and rs.update_time >= #{applicationTimeStart} and rs.update_time <DATE_ADD(#{applicationTimeEnd},INTERVAL 1 DAY)</if></where>ORDER BY rs.update_time ASC</select>



这篇关于mybatis if test 之 0当做参数传入出问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147831

相关文章

MyBatis中$与#的区别解析

《MyBatis中$与#的区别解析》文章浏览阅读314次,点赞4次,收藏6次。MyBatis使用#{}作为参数占位符时,会创建预处理语句(PreparedStatement),并将参数值作为预处理语句... 目录一、介绍二、sql注入风险实例一、介绍#(井号):MyBATis使用#{}作为参数占位符时,会

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

全面解析MySQL索引长度限制问题与解决方案

《全面解析MySQL索引长度限制问题与解决方案》MySQL对索引长度设限是为了保持高效的数据检索性能,这个限制不是MySQL的缺陷,而是数据库设计中的权衡结果,下面我们就来看看如何解决这一问题吧... 目录引言:为什么会有索引键长度问题?一、问题根源深度解析mysql索引长度限制原理实际场景示例二、五大解决

Springboot如何正确使用AOP问题

《Springboot如何正确使用AOP问题》:本文主要介绍Springboot如何正确使用AOP问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录​一、AOP概念二、切点表达式​execution表达式案例三、AOP通知四、springboot中使用AOP导出