欢迎来到我的个人主页:
http://www.aaronlee.vip
http://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版权协议,转载请附上原文出处链接和本声明。