MyBatis if test 判断字符串相等不生效
Posted root_zhb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis if test 判断字符串相等不生效相关的知识,希望对你有一定的参考价值。
1、问题
采用 MyBatis 框架操作 mysql 数据库时,判断传入的字符串 prmCreated 值为"N"时,执行相关操作,如下 xml 语句未生效:
<if test="prmCreated == 'N'">
and prm_closed = 0
</if>
2、原因
MyBatis 是使用 OGNL 表达式来进行解析的,在 OGNL 表达式中,'N’会被解析成字符。
因为 java 是强类型的,char 和 String 不等,所以 if 标签中的 SQL 不会被解析。
3、解决
解决方法:
- 使用双引号
<if test='"N" == prmCreated'>
- 双引号equals
<if test='"N".equals(prmCreated)'>
- 单引号调用 toString 方法
<if test="'N'.toString() == prmCreated">
以上是关于MyBatis if test 判断字符串相等不生效的主要内容,如果未能解决你的问题,请参考以下文章