Mybatis的mapper.xml中if标签test判断怎么使用
导读:本文共2347字符,通常情况下阅读需要8分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: mapper.xml中if标签test判断的用法1. 字符串等于条件的两种写法① 将双引号和单引号的位置互换<iftest='testString!=nullandtestString=="A"'>AND表字段=#{testString}</if>② 加上.toString()<iftest=... ...
目录
(为您整理了一些要点),点击可以直达。① 将双引号和单引号的位置互换
② 加上.toString()
长久以来,我们判断非空非null的判断条件都是如下所示:
但是这样的判断只是针对String的,如果是别的类型,这个条件就不一定成立了,比如最经典的:当是数字0时,这个判断就会把0过滤掉,所以如果要判断数字,我们一般会再加上一个0的判断(这和mybatis的源码逻辑有关,有兴趣的可以去看看源码)
但是如果传进来的是数组或者集合呢?我们要再写别的判断吗?能不能封装个方法呢?
答案是可以的。
if标签里面的test判断是可以使用工具类来做判断的,毕竟test后面跟的也是一个布尔值,其用法是:
例如:
下面是我写的一个简陋的工具类,不是很全面,抛砖引玉,各位可以根据需要补充。
注意,元素类型是字符串的话,参考1中的写法,一般这样写
map中添加了两个int类型的数据,
错误的SQL书写:
正确的SQL书写
因为startNum里存的是int数据,所以不能与空字符串进行比较,强行比较时会报错。
map中添加的是一个字符串形式的“1”
如果想在XML中比较,以下两种方式都可以:
2.1 test使用双引号
比较的对象使用单引号点toString()方法:
2.2 test使用单引号
比较的对象直接使用双引号:
Mybatis的mapper.xml中if标签test判断怎么使用的详细内容,希望对您有所帮助,信息来源于网络。