Mybatis plus lambdaQuery和lambdaUpdate用法
一、条件构造器官方说明
二、lambdaQuery
1.基本用法
lambdaQuery().list();//查询用户列表对象
List<User> userList = lambdaQuery().like(User::getName,name).list();//根据姓名模糊查询用户
User user = lambdaQuery().eq(User::getId,id).one();//根据id查询用户
IPage<User> userPage = new Page<>(1l,10l);//分页对象 第一页,每页10条
userPage = lambdaQuery().eq(id != null,User::getId,id)//特定id
.likeLeft(StrUtil.isNotEmpty(name),User::getName,name)//左匹配姓名
.ge(minAge != null,User::getAge,minAge)//大于等于11岁
.le(maxAge != null,User::getAge,maxAge)//小于等于20岁
.orderByAsc(User::getAge)//根据age升序
.page(userPage);//分页对象
2.复杂用法
- a and b
user = lambdaQuery()
.eq(User::getId,id)
.eq(User::getName,name)
.one();
- a or b
user = lambdaQuery()
.eq(User::getId,id)
.or()
.eq(User::getName,name)
.one();
- a or (b and c)
User user = lambdaQuery()
.eq(User::getId,id)
.or(wp -> wp.eq(User::getId,id).eq(User::getSex,sex))
.one();
- (a and b) or (b and c)
User user = lambdaQuery()
.and(wp -> wp.eq(User::getAge,maxAge).eq(User::getName,name))
.or(wp -> wp.eq(User::getId,id).eq(User::getSex,sex))
.one();
- a or (b and (c or d )
User user = lambdaQuery()
.and(wp -> wp.eq(User::getId,id))
.and(wp -> wp.like(User::getName,name))
.or(wp ->
wp.eq(User::getSex,sex)
.and(wpp -> wpp.ge(User::getAge,minAge)).or().le(User::getAge,maxAge))
.one();
三、lambdaUpdate
1.基本用法
boolean result = lambdaUpdate().remove(); //删除
boolean result = lambdaUpdate().update(); //更新
boolean result = lambdaUpdate().eq(User::getId,id).set(User::getName,"李四").update(); //将某个id的用户名改为李四
boolean result = lambdaUpdate().ge(User::getAge,age).set(User::getName,"李四").update(); //将年龄大于某个值的用户名改为李四