赞
踩
最近发现MyBatisPlus还是挺好用的,下面这篇文章主要给大家介绍了关于Mybatis-Plus中and()和or()的使用与原理的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
简单来说,两个子条件间默认and与连接,若两个之间显式写出or()则or或连接.
当需要简单的将两个条件与连接,则最直接的写法为:
1 2 3 |
|
当然也可以显式地写出and()如下,但没必要:
1 2 3 4 |
|
当需要简单的将两个条件或连接,则最直接的写法为:
1 2 3 4 |
|
当然也可以如下,但不那么直观:
1 2 3 4 |
|
上面有2个不推荐的做法,是因为sql语句为A or B , A and B这种简单连接.当涉及到诸如 A and ( B or C) and D 这类的复杂有优先级的的连接,直接拼接会导致成为 A and B or C and D.所以这时候需要需要or(Consumer consumer),and(Consumer consumer)这两个方法.示例如下:
1 2 3 4 5 6 7 |
|
生成的sql语句如下:
1 2 3 |
|
由此还可见or(Consumer consumer),and(Consumer consumer)这两个方法参数为Consumer时,会在连接处生成2对括号,以此提高优先级.
案例1:where A=? and B=?
1 2 |
|
案例2:where A=? or B=?
1 2 |
|
案例3:where A=? or(C=? and D=?)
1 2 3 4 5 6 7 |
|
案例4:where (A=?andB=?)or(C=?andD=?)
1 2 3 4 5 6 7 |
|
案例5:whert A =? or (B=? and ( C=? or D=?))
1 2 3 4 5 6 7 8 9 10 |
|
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。