解决Mybatis.xml文件 单字符串对比无效问题

欢迎来到我的个人主页:

http://www.aaronlee.vipicon-default.png?t=LA92http://www.aaronlee.vip

问题描述:

在使用mybatis过程中,需要使用到字符串对比的情况,比如我遇到的:

<if test="sortName == 'zfy' and sortOrder == '1'">
            ORDER BY  sum(l."zfy")
</if>

大致意思就是 sortOrder是排序方向,如果是1的话正序,如果是2的话就是倒序。sortName是排序字段。这个test语句本身并没有任何问题,但是经过我的不断测试发现,sortName == 'zfy' 这句总是能够识别,而sortOrder == '1'这一句总是识别不了。

问题产生的原因:

大致是因为mybatis映射文件,是使用的ognl表达式,比较字符应该使用 ""(双引号)而不是单引号,单引号可能导致不能识别,至于为什么多字符用单引号就能识别,而单字符就不能识别。emmm搞不懂;

解决问题

方式一,单字符串后面加toString方法

<if test="sortName == 'zfy' and sortOrder == '1'.toString()">
            ORDER BY  sum(l."zfy")
</if>

方式二:外层使用单引号内层使用双引号-推荐

<if test='sortName == "zfy" and sortOrder == "1"'>
            ORDER BY  sum(l."zfy")
</if>


版权声明:本文为Lee_1310原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。