1. 程式人生 > 其它 >Mybatis-PLUS之lambdaQueryWrapper和LambdaUpdateWrapper

Mybatis-PLUS之lambdaQueryWrapper和LambdaUpdateWrapper

1、mybatis-plus依賴中介面類IService中有這樣一個方法

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

2、lambdaQueryWrapper寫法

LambdaQueryWrapper<實體類> lambda= Wrappers.lambdaQuery(實體類.class);
    lambda.eq(實體類::get實體類欄位, 入參)
          .orderByAsc(實體類::get實體類欄位)
          .select(實體類::get實體類欄位, 實體類::get實體類欄位);

3.LambdaUpdateWrapper寫法

 LambdaUpdateWrapper<實體類> lambda = Wrappers.lambdaUpdate(實體類.class);
        lambda.set(實體類::getName, "張三")
                .eq(實體類::getId, id);
        this.update(lambda);//提交

4.SeviceImpl中可以用上面的連個合併返回List(Service層要繼承IService,ServiceImpl要繼承SerivceImpl)

List<實體類> list = this
.list(lambda);

5.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));