`
中华好儿孙
  • 浏览: 67872 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

mybatis里if标签判断字符串相等不相等的问题

阅读更多
<foreach collection="accurateSearchMap" index="key" item="item">
	    		<if test="key == 'gcc.sex' and item != '3' and item!='' and item!=null">
	    			and	${key}  = #{item}
	    		</if>
	    		<if test="key == 'gcc.classes' and item != '3' and item!='' and item!=null">
	    			and	${key}  = #{item}
	    		</if>
	    		<if test="key == 'gcc.add_target' and item != '2' and item!='' and item!=null">
	    			and	${key}  = #{item}
	    		</if>
	    		<if test="key == 'gcc.custype' and item != '3' and item!='' and item!=null">
	    			and	${key}  = #{item}
	    		</if>
	    		<if test="item!='' and item!=null and key != 'gcc.sex' and key != 'gcc.classes' and key != 'gcc.add_target' and key != 'gcc.custype'">
	    		    and ${key}  = #{item}
	    		</if>
	    	</foreach>


因为accurateSearchMap是Map<String, Object>类型的,所以键对应的值是Object类型的,而对象间用==或!=比较的是地址引用,所以在值为Object类型的情况下以上代码是有问题的。
解决办法是:在值item后加上toString方法的调用,'1'后面也要加toString方法的调用
分享到:
评论

相关推荐

    mybatis 映射文件中if标签判断字符串相等的两种方式

    本文将详细讨论在MyBatis映射文件中,`if`标签判断字符串相等的两种方法。 ### 方法一:使用OGNL表达式 MyBatis的`if`标签内支持OGNL(Object-Graph Navigation Language)表达式,这是一种强大的表达式语言,用于...

    Mybatis3 if判断字符串变态写法

    这里我们将深入探讨如何正确使用`if`标签来判断字符串。 错误的写法通常会出现在直接比较字符串时没有正确地添加引号。比如,错误的写法是`if test=”status == ‘Y'”`。这样的写法会导致一个`...

    mybatis自定义标签.zip

    例如,我们可以创建一个名为`CustomIfTagHandler`的类,用于处理类似`&lt;if&gt;`标签的逻辑判断。 ```java public class CustomIfTagHandler implements XMLTag { // 实现XMLTag接口的方法... } ``` 2. **注册标签处理...

    MyBatis动态Sql之if标签的用法详解

    在上面的示例中,test属性指定了一个判断条件:如果userName不为空且不为空字符串,则执行if标签中的Sql语句。 if标签的使用场景 if标签常用于实现动态查询、动态更新和动态插入等场景。例如: 1. 动态查询:根据...

    mybatis Mapper.xml中传参多选 字符串形式逗号分隔 AND中拼接OR.rar

    注意,`&lt;if&gt;`标签用于判断`tags`是否为空或者其大小是否大于0,以决定是否需要执行`&lt;foreach&gt;`循环。这是因为如果用户没有选择任何标签,我们不希望生成任何`OR`条件,否则会导致查询结果不正确。 在实际开发中,你...

    MyBatis 动态拼接Sql字符串的问题

    在处理SQL时,动态SQL功能是MyBatis的一大亮点,它有效地解决了SQL字符串拼接的问题,避免了手动拼接带来的错误和复杂性。 1. **If标签**:MyBatis的`&lt;if&gt;`标签用于条件判断,它允许我们在SQL语句中根据Java对象的...

    Mybatis现学现用

    这样做很安全,很迅速也是首选做法,有时你只是想直接在SQL语句中插入一个不改变的字符串。比如,像ORDER BY,你可以这样来使用: ORDER BY ${columnName} 这里MyBatis不会修改或转义字符串。 重要:接受从用户输出...

    mybatis中&lt;if&gt;标签bool值类型为false判断方法

    在问题描述中,开发者遇到的问题是在处理`&lt;if&gt;`标签时,bool类型的变量`byId`为`false`时判断不生效。通常,我们可能会这样写`&lt;if&gt;`标签: ```xml &lt;if test="byId != null"&gt; a.id = #{artName} &lt;/if&gt; ``` 这种...

    mybatis 动态sql及参数传递

    目录 使用场景 动态标签 if标签 where标签 choose、when、otherwise 标签 ...if标签通常用那个胡where语句,update语句,insert语句中,通过判断参数值来决定是否使用某个查询条件,判断是否更新某一个字段或插入某个字段

    MyBatis的setting标签对应属性和值

    MyBatis的setting标签对应属性和值

    mybatis collection list string

    标题 "mybatis collection list string" 暗示了我们讨论的主题是关于MyBatis框架中与集合(List)和字符串(String)处理相关的问题。在MyBatis这个强大的持久层框架中,集合和字符串的使用非常常见,尤其是在进行数据库...

    mybatis解析动态xml sql

    项目需要springboot 可以绕过mybatis xml加载直接解析带标签的sql 演示代码,给需要的码农

    技巧:MyBatis 中的trim标签,好用!.zip

    技巧:MyBatis 中的trim标签,好用!.zip技巧:MyBatis 中的trim标签,好用!.zip技巧:MyBatis 中的trim标签,好用!.zip技巧:MyBatis 中的trim标签,好用!.zip技巧:MyBatis 中的trim标签,好用!.zip技巧:...

    解决mybatis使用char类型字段查询oracle数据库时结果返回null问题

    这种方式是无法查到数据的,因为查询条件值”sgl”和数据库中值”sgl “是不相等的。 如果使用trim()方式也可以查询到数据,如:conn=getConnection();ps=conn.prepareStatement("select * from t_user where trim...

    MyBatis动态标签.pdf

    `collection`属性是必选的,在不同情况下该属性的值是不一样的: - 如果传入的是单参数且参数类型是一个`List`,则默认使用`list`作为`List`对象的键。 - 如果传入的是单参数且参数类型是一个`Array`,则默认使用`...

    Mybatis中foreach标签带来的空格\换行\回车问题及解决方案

    "Mybatis foreach标签带来的空格、换行、回车问题及解决方案" Mybatis 中的 foreach 标签是一个功能强大的工具,允许开发者在 SQL 语句中循环遍历集合对象。但是,在使用 foreach 标签时,经常会遇到空格、换行、...

    mybatis if标签使用总结

    在另一方法`getListByStartDateAndEndDate`中,`&lt;if&gt;`标签用于判断`startDate`和`endDate`两个参数是否不相等。如果不相等,`&lt;if&gt;`标签内的内容(即`date between #{startDate} and #{endDate}`)将被添加到SQL语句...

    Mybatis自定义拦截器,对模糊查询传值的特殊字符统一进行转义处理的代码

    特殊字符(\,_,%)转义工具类 MyQueryInterceptor.java: Mybatis自定义拦截器 注意:该拦截器只支持QueryWrapper的like方法,serviceImpl层传全角模糊查询(%%) mapper或xml层的全角模糊查询(%*%)和半角模糊查询(%*或*%)

    测试mybatis里foreach用法

    总的来说,MyBatis的`&lt;foreach&gt;`标签是处理动态SQL和集合数据的关键工具,它可以优雅地解决批量操作、条件查询等问题,让SQL语句的编写更加灵活和高效。正确理解和熟练运用`&lt;foreach&gt;`,能显著提升MyBatis的开发效率...

    mybatis 对clob类型转换

    当你需要将一个字符串或者Reader对象插入到CLOB字段时,MyBatis默认可能无法正确处理。此时,你需要自定义一个TypeHandler来处理这种转换。创建一个实现`org.apache.ibatis.type.TypeHandler`接口的类,重写`...

Global site tag (gtag.js) - Google Analytics