Categories: MyBatis-Plus 教程

MyBatis-Plus CRUD接口-SimpleQuery 工具类

  • 对​selectList​查询后的结果用​Stream​流进行了一些封装,使其可以返回一些指定结果,简洁了api的调用
  • 需要项目中已注入对应实体的​BaseMapper
  • 对于下方参数​peeks​,其类型为​Consumer...​,可一直往后叠加操作例如:​List<Long> ids = SimpleQuery.list(Wrappers.lambdaQuery(), Entity::getId, System.out::println, user -> userNames.add(user.getName()));

keyMap

// 查询表内记录,封装返回为Map<属性,实体>
Map<A, E> keyMap(LambdaQueryWrapper<E> wrapper, SFunction<E, A> sFunction, Consumer<E>... peeks);
// 查询表内记录,封装返回为Map<属性,实体>,考虑了并行流的情况
Map<A, E> keyMap(LambdaQueryWrapper<E> wrapper, SFunction<E, A> sFunction, boolean isParallel, Consumer<E>... peeks);

参数说明

参数名 类型 描述
entity E 实体对象
attribute A 实体属性类型,也是map中key的类型
wrapper LambdaQueryWrapper<E> 支持lambda的条件构造器
sFunction SFunction<E, A> 实体中属性的getter,用于封装后map中作为key的条件
isParallel boolean 为true时底层使用并行流执行
peeks Consumer<E>… 可叠加的后续操作

map

// 查询表内记录,封装返回为Map<属性,属性>
Map<A, P> map(LambdaQueryWrapper<E> wrapper, SFunction<E, A> keyFunc, SFunction<E, P> valueFunc, Consumer<E>... peeks);
// 查询表内记录,封装返回为Map<属性,属性>,考虑了并行流的情况
Map<A, P> map(LambdaQueryWrapper<E> wrapper, SFunction<E, A> keyFunc, SFunction<E, P> valueFunc, boolean isParallel, Consumer<E>... peeks);

参数说明

参数名 类型 描述
entity E 实体对象
attribute A 实体属性类型,也是map中key的类型
attribute P 实体属性类型,也是map中value的类型
wrapper LambdaQueryWrapper<E> 支持lambda的条件构造器
keyFunc SFunction<E, A> 封装后map中作为key的条件
valueFunc SFunction<E, P> 封装后map中作为value的条件
isParallel boolean 为true时底层使用并行流执行
peeks Consumer<E>… 可叠加的后续操作

group

// 查询表内记录,封装返回为Map<属性,List<实体>>
Map<K, List<T>> group(LambdaQueryWrapper<T> wrapper, SFunction<T, A> sFunction, Consumer<T>... peeks);
// 查询表内记录,封装返回为Map<属性,List<实体>>,考虑了并行流的情况
Map<K, List<T>> group(LambdaQueryWrapper<T> wrapper, SFunction<T, K> sFunction, boolean isParallel, Consumer<T>... peeks);
// 查询表内记录,封装返回为Map<属性,分组后对集合进行的下游收集器>
M group(LambdaQueryWrapper<T> wrapper, SFunction<T, K> sFunction, Collector<? super T, A, D> downstream, Consumer<T>... peeks);
// 查询表内记录,封装返回为Map<属性,分组后对集合进行的下游收集器>,考虑了并行流的情况
M group(LambdaQueryWrapper<T> wrapper, SFunction<T, K> sFunction, Collector<? super T, A, D> downstream, boolean isParallel, Consumer<T>... peeks);

参数说明

参数名 类型 描述
entity T 实体对象
attribute K 实体属性类型,也是map中key的类型
- D 下游收集器返回类型,也是map中value的类型
- A 下游操作中间类型
- M 最终结束返回的Map<K, D>
wrapper LambdaQueryWrapper<E> 支持lambda的条件构造器
sFunction SFunction<E, A> 分组依据,封装后map中作为key的条件
downstream Collector<T, A, D> 下游收集器
isParallel boolean 为true时底层使用并行流执行
peeks Consumer<T>… 可叠加的后续操作

list

// 查询表内记录,封装返回为List<属性>
List<A> list(LambdaQueryWrapper<E> wrapper, SFunction<E, A> sFunction, Consumer<E>... peeks);
// 查询表内记录,封装返回为List<属性>,考虑了并行流的情况
List<A> list(LambdaQueryWrapper<E> wrapper, SFunction<E, A> sFunction, boolean isParallel, Consumer<E>... peeks);

参数说明

参数名 类型 描述
entity E 实体对象
attribute A 实体属性类型,也是list中元素的类型
wrapper LambdaQueryWrapper<E> 支持lambda的条件构造器
sFunction SFunction<E, A> 封装后list中的元素
isParallel boolean 为true时底层使用并行流执行
peeks Consumer<E>… 可叠加的后续操作

唐伯虎点蚊香

前端小白,想各位学习!

Share
Published by
唐伯虎点蚊香

Recent Posts

聊聊vue3中的defineProps

在Vue 3中,defineP…

4 天 ago

在 Chrome 中删除、允许和管理 Cookie

您可以选择删除现有 Cooki…

1 周 ago

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

2 周 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

3 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

4 周 ago

Vue3:手动清理keep-alive组件缓存的方法

Vue3中手动清理keep-a…

4 周 ago