在项目中使用条件查询的时候一直都是使用的AND,有一天突然碰到要使用OR的,情况是类似这样的:Where a<1 and ( b>2 OR b<1),在iBatis中怎么写呢?我是这么写的:
<isNotEmpty prepend="AND" property="a">
<![CDATA[
a < 1
]]>
</isNotEmpty>
<isNotEmpty prepend="AND (" property="b">
<![CDATA[
b > 2
]]>
</isNotEmpty>
<isNotEmpty prepend="OR" property="b">
<![CDATA[
b < 1 )
]]>
</isNotEmpty>
假设上例中a b 对应于parameterClass中的属性分别是a b 。想怎么写这个OR条件想了我一段时间,因为之前潜意识的就认为prepend属性只能为AND和OR,但是实际上prepend属性可以为任何值,它只是表示当条件满足时放在sql语句之前的字符串,随便是什么都可以,当然你要保证最后拼凑出来的sql是语法正确的。