Mybatis Plus中的lambdaQueryWrapper和LambdaUpdateWrapper

一、Mybatis Plus中的lambdaQueryWrapper:
用法:

1. mybatis-plus依赖中接口类IService中有这样一个方法

default List<T> list(Wrapper<T> queryWrapper) {
    return this.getBaseMapper().selectList(queryWrapper);
}

2.查询生成一个Wrapper

LambdaQueryWrapper<实体类> lambda= new UpdateWrapper<实体类>().lambda();
    lambda.eq(实体类::get实体类字段, 入参)
          .orderByAsc(实体类::get实体类字段)
          .select(实体类::get实体类字段, 实体类::get实体类字段);

或者这么写

LambdaQueryWrapper<实体类> lambda= new LambdaQueryWrapper<实体类>();
    lambda.eq(实体类::get实体类字段, 入参)
          .orderByAsc(实体类::get实体类字段)
          .select(实体类::get实体类字段, 实体类::get实体类字段);

3.SeviceImpl中可以用上面的连个合并返回List(Service层要继承IService,ServiceImpl要继承SerivceImpl)

List<实体类> list = this.list(lambda);

4.list转化

1.list转set:
List notifications= userMapper.selectByExample(userExample);
Set<Long> disUserIds = notifications.stream().map(notify -> notify.getNotifier()).collect(Collectors.toSet());

2.list转map
List users = userMapper.selectByExample(userExample);
//转化成map
Map<Long, User> userMap = users.stream().collect(Collectors.toMap(u -> u.getId(), u -> u));

二、Mybatis Plus中的lambdaUpdateWrapper:
用法(service层中书写):

 LambdaUpdateWrapper<实体类> lambda = new UpdateWrapper<实体类>().lambda();
        lambda.set(实体类::getName, "张三")
                .eq(实体类::getId, id);
        this.update(lambda);//提交

另一种写法

 LambdaUpdateWrapper<实体类> lambda = new LambdaUpdateWrapper<实体类>();
        lambda.set(实体类::getName, "张三")
                .eq(实体类::getId, id);
        this.update(lambda);//提交

条件构造器

查询方式说明
setSqlSelect设置 SELECT 查询字段
whereWHERE 语句,拼接 + WHERE 条件
andAND 语句,拼接 + AND 字段=值
andNewAND 语句,拼接 + AND (字段=值)
orOR 语句,拼接 + OR 字段=值
orNewOR 语句,拼接 + OR (字段=值)
eq等于=
allEq基于 map 内容等于=
ne不等于<>
gt大于>
ge大于等于>=
lt小于<
le小于等于<=
like模糊查询 LIKE
notLike模糊查询 NOT LIKE
inIN 查询
notInNOT IN 查询
isNullNULL 值查询
isNotNullIS NOT NULL
groupBy分组 GROUP BY
havingHAVING 关键词
orderBy排序 ORDER BY
orderAscASC 排序 ORDER BY
orderDescDESC 排序 ORDER BY
existsEXISTS 条件语句
notExistsNOT EXISTS 条件语句
betweenBETWEEN 条件语句
notBetweenNOT BETWEEN 条件语句
addFilter自由拼接 SQL
last拼接在最后,例如:last("LIMIT 1")

注意! xxNew 都是另起 ( ... ) 括号包裹。


另外的写法,不使用new(写在seivice层)

this.list(Wrappers.<实体类>lambdaQuery().eq(实体类::get属性, 参数));
this.update(Wrappers.<实体类>lambdaQuery().eq(实体类::get属性, 参数));
...

  • 13
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值