MyBatis test表达式中判断相等无效

简介: 本文目录1. 现象2. 问题处理3. 解决

1. 现象

想通过传入一个remarkflag标志,当remarkflag为"0"时,查询数据库中remark列为空字符串的行,当remarkflag为"1"时,查询数据库中某字段为非空字符串的行。代码如下:


       <if test="remarkflag != '' and remarkflag == '0'">

         AND remark =''

       </if>

       <if test="remarkflag != '' and remarkflag == '1'">

         AND remark !=''

       </if>


结果不论remarkflag设为"0"还是"1",上面两个判断均不成立。


2. 问题处理

查了许多文档,发现当判断的单引号内只有一个字符时,会被识别为Java语言中的char类型,上述remarkflag==‘0’,左边是字符串,右边是字符型,所以不成立,同理remarkflag == '1’也不成立。


3. 解决

强制转换下类型后,问题解决:


       <if test="remarkflag != '' and remarkflag == '0'.toString()">

         AND remark =''

       </if>

       <if test="remarkflag != '' and remarkflag == '1'.toString()">

         AND remark !=''

       </if>

相关文章
|
SQL Java 数据库连接
MyBatis【源码探究 01】mapper.xml文件内<if test>标签判断参数值不等于null和空(当参数值为0)时筛选条件失效原因分析
MyBatis【源码探究 01】mapper.xml文件内<if test>标签判断参数值不等于null和空(当参数值为0)时筛选条件失效原因分析
1525 0
MyBatis【源码探究 01】mapper.xml文件内<if test>标签判断参数值不等于null和空(当参数值为0)时筛选条件失效原因分析
|
SQL Java 数据库连接
mybatis @Select注解中当参数为空则不添加该参数的判断
public interface OrderMapper extends SqlMapper{ @Select("select * from tbl_order where room like #{room} and mydate like #{my...
5014 0
|
SQL Java 关系型数据库
MyBatis的动态SQL之OGNL(Object-Graph Navigation Language)表达式以及各种标签的用法
MyBatis的动态SQL之OGNL(Object-Graph Navigation Language)表达式以及各种标签的用法
322 0
|
Java 数据库连接 mybatis
mybatis if标签字符串判断
mybatis if标签字符串判断
613 0
|
SQL Java 数据库连接
Mybatis if test 判断数字时需要注意
Mybatis if test 判断数字时需要注意
751 0
|
SQL 安全 Java
学习MyBatis必知必会(4)~ OGNL 表达式和EL 表达式
学习MyBatis必知必会(4)~ OGNL 表达式和EL 表达式
590 0
|
SQL Java 数据库连接
Mybatis: sql中if 判断的坑
“原创精选,转载注明出处,三克油” 前言 Mbatis 的script标签可以支持很多动态SQL查询、在使用if test判断的时候、会有一些意向不到的坑 正文 我们一般在Mbatis中做update更新时、都会加上使用if test判断、防...
1799 0
|
SQL Java 数据库连接
mybatis 动态sql表达式相关应用
一、mybatis 表达式简介   对于mybatis3 ,提供了一种动态sql的方式。通过动态sql我们可以直接在mybatis 的xm映射文件中直接通过条件判断的方式进行查询添加的拼接。mybatis 项目地址为 http://github.com/mybatis/mybatis-3 。
1487 0
|
4月前
|
Java 数据库连接 数据库
Spring boot 使用mybatis generator 自动生成代码插件
本文介绍了在Spring Boot项目中使用MyBatis Generator插件自动生成代码的详细步骤。首先创建一个新的Spring Boot项目,接着引入MyBatis Generator插件并配置`pom.xml`文件。然后删除默认的`application.properties`文件,创建`application.yml`进行相关配置,如设置Mapper路径和实体类包名。重点在于配置`generatorConfig.xml`文件,包括数据库驱动、连接信息、生成模型、映射文件及DAO的包名和位置。最后通过IDE配置运行插件生成代码,并在主类添加`@MapperScan`注解完成整合
645 1
Spring boot 使用mybatis generator 自动生成代码插件