mybatis if标签判断不生效的解决方法
作者:暮霭层层楚天阔 发布时间:2023-11-28 12:30:49
标签:mybatis,if标签
实际需求
<if test="computationRule == '1'">
FROM app_sz_bbb a
</if>
<if test="computationRule == '2'">
FROM app_ccc a
</if>
这种情况不生效,
原因:mybatis是用OGNL表达式来解析的,在OGNL的表达式中,'0'会被解析成字符,java是强类型的,char 和 一个string 会导致不等,所以if标签中的sql不会被解析。
先说怎么解决
三种:
加 .toString()
<if test="computationRule == '1'.toString()">
FROM app_sz_bbb a
</if>
<if test="computationRule == '2'.toString()">
FROM app_ccc a
</if>
choose when 标签代替
<choose>
<when test="computationRule == '1'">
FROM app_sz_bbb a
</when>
<otherwise>
FROM app_sz_bbb a
</otherwise>
</choose>
单引号 换成双引号
<if test='computationRule == "1"'>
FROM app_sz_bbb a
</if>
<if test='computationRule == "2"'>
FROM app_ccc a
</if>
MyBatis 中if 标签 判断字符串不生效
异常sql 的mapper 文件:
<if test="isBound != null and isBound !='' and isBound == '1'">
and box_sid is not null
</if>
<if test="isBound != null and isBound !='' and isBound == '2'">
and box_sid is null
</if>
正确sql 的mapper 文件
<if test="isBound != null and isBound !='' and isBound == '1'.toString()">
and box_sid is not null
</if>
<if test="isBound != null and isBound !='' and isBound == '2'.toString()">
and box_sid is null
</if>
来源:https://blog.csdn.net/qq_43167632/article/details/110189333


猜你喜欢
- 开发环境 android studio 3.0.1 已支持 kotlin1、定义接口interface CallBack{ fun call
- 一、前言Android 实现卫星式菜单也叫弧形菜单,主要要做的工作如下:1.动画的处理2.自定义ViewGroup来实现卫星式菜单View(
- AutoRestEvent 类用于从一个线程向另一个线程发送通知。微软文档是这样介绍的:表示线程同步事件在一个等待线程释放后收到信号时自动重
- 一、前言无论承接什么样的需求,是不是身边总有那么几个人代码写的烂,但是却时常有测试小姐姐过来聊天(求改bug)、有产品小伙伴送吃的(求写需求
- 最近零碎时间一直在研究OpenGL,所以没怎么进行分享,以后可能大部分时间会学习系统底层\NDK\VR\AR等领域,话不多少,今天来分享个小
- 1.图的遍历从图中某一顶点出发访问图中其余顶点,且每个顶点仅被访问一次图的遍历有两种深度优先遍历DFS、广度优先遍历BFS2.深度优先遍历深
- Java 实现 Http Server,模拟前端接口调用前言: 最近看到一个很有意思的东西,手写简单的 Http Server,而且只需要使
- # 前言在我们实际项目开发过程中,我们经常需要将不同的两个对象实例进行属性复制,从而基于源对象的属性信息进行后续操作,而不改变源对象的属性信
- 描述说明:public class TryCatchStu { /*try catch:自己处理异常 *t
- 1:Xxtea支持中文;2:支持JS和C#加解密之间的互转;一:C#部分class XXTEA2 {
- 函数指针函数指针是指向函数的指针变量。通常我们说的指针变量是指向一个整型变、字符型或数组等变量,而函数指针是指向函数。函数指针可以像一般函数
- 在程序中对文件操作是非常常见的,而对文件的操作则不可避免的需要文件的路径,并对文件的路径进行一系列的操作,例如:判断已知的路径是一个目录还是
- 查看JDK1.8 ArrayList的源代码1、默认初始容量为10 /** * Default i
- 作为工厂方法模式的孪生兄弟,相信大家对工厂方法模式和抽象工厂模式傻傻分不清楚吧。那么,就让我来拯救大家吧!抽象工厂模式定义:所谓抽象工厂模式
- 顺序语句顺序顾名思义就是程序自上而下执行public class User { public static voi
- Java中的try-catch-finally异常处理一、异常处理异常(Exception):是在运行发生的不正常情况。原始异常处理:if(
- 先来看看效果:一、添加依赖库的步骤1.项目的gradle文件内的做以下改动allprojects { repositories
- 概述Spring Cloud中,客户端的负载均衡使用的是Ribbon,Ribbon的超时时间默认很短,需要进行调整。Spring Cloud
- 有经验的程序员应该都见过,一个方法坐拥几十上百个参数。方法为何要有参数?因为不同方法间需共享信息。但方法间共享信息的方式不止一种,除了参数列
- 用Java编写简单的五子棋,供大家参考,具体内容如下前言这两天在空闲时间做了个五子棋项目,分享给大家看一下,界面是这样的:界面很丑我知道,本