nested包裹or方法
nested包裹or方法
如果开头是在括号中的判断,则开头通过nested进行条件的联合
如果是要找特定数组下的,用in
如果是要选特定数量,在最后last("limit n")
条件查询,in 8
条件查询,带括号 7
非and开头的条件构造器:nested()
In条件构造器:In(column,Collection)
last条件构造器:last(sql)。注意:有sql注入风险。确保参数没有风险再使用。
如图所示笔记内容
如图所示的笔记内容
需求9的代码
需求8的代码
需求7的代码
last(语句)
last只能在mp中使用一次,多次调用将以最后一次为准
年龄在(30,31,34,35)的
使用in
(年龄小于40或邮箱不为空)并且名字为王姓:
nested(wq->wq...)
nested为嵌套的意思
说明age合is not null字段为整体
sql中or的优先级小于and
queryWrapper.nested(声明式接口表达式) 括号在最前面
queryWrapper.last("limit 1") 有sql注入风险
/**(年龄小于40或者邮箱不为空)并且名字为王姓
(age< 40 email is not null )and name like '王%'
**/
queryWrapper.nested(wq->wq.lt("age",40).or().isNotNull("email")).likeRight("name","王")
正常嵌套 不带 AND 或者 OR
nested
nested(qw->qw.lt("age", 40).or().isNotNull("email")).likeRight("name", "王")
/**(年龄小于40或者邮箱不为空)并且名字为王姓
(age< 40 email is not null )and name like '王%'
**/
queryWrapper.nested(wq->wq.lt("age",40).or().isNotNull("email")).likeRight("name","王");
/**
只返回满足条件的其中一条语句即可
**/
queryWrapper.in("age",Arrays.asList(30,31,34,35)).last("limit 1");