【Mybatis-plus】 SimpleQuery 工具类
title: 【Mybatis-plus】 SimpleQuery 工具类
date: 2023-01-21 19:16
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/Mybatis-plus
categories:
- Mybatis-plus
keywords:
- Mybatis-plus
description: 【Mybatis-plus】 SimpleQuery 工具类
【Mybatis-plus】 SimpleQuery 工具类
说明:
- 对selectList查询后的结果用Stream流进行了一些封装,使其可以返回一些指定结果,简洁了api的调用
- 需要项目中已注入对应实体的BaseMapper
- 使用方式见: 测试用例(opens new window)
- 对于下方参数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);
参数说明
类型 |
参数名 |
描述 |
E |
entity |
实体对象 |
A |
attribute |
实体属性类型,也是list中元素的类型 |
LambdaQueryWrapper<E> |
wrapper |
支持lambda的条件构造器 |
SFunction<E, A> |
sFunction |
封装后list中的元素 |
boolean |
isParallel |
为true时底层使用并行流执行 |
Consumer<E>… |
peeks |
可叠加的后续操作 |
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);
参数说明
类型 |
参数名 |
描述 |
E |
entity |
实体对象 |
A |
attribute |
实体属性类型,也是map中key的类型 |
P |
attribute |
实体属性类型,也是map中value的类型 |
LambdaQueryWrapper<E> |
wrapper |
支持lambda的条件构造器 |
SFunction<E, A> |
keyFunc |
封装后map中作为key的条件 |
SFunction<E, P> |
valueFunc |
封装后map中作为value的条件 |
boolean |
isParallel |
为true时底层使用并行流执行 |
Consumer<E>… |
peeks |
可叠加的后续操作 |
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);
参数说明
类型 |
参数名 |
描述 |
T |
entity |
实体对象 |
K |
attribute |
实体属性类型,也是map中key的类型 |
D |
- |
下游收集器返回类型,也是map中value的类型 |
A |
- |
下游操作中间类型 |
M |
- |
最终结束返回的Map<K, D> |
LambdaQueryWrapper<E> |
wrapper |
支持lambda的条件构造器 |
SFunction<E, A> |
sFunction |
分组依据,封装后map中作为key的条件 |
Collector<T, A, D> |
downstream |
下游收集器 |
boolean |
isParallel |
为true时底层使用并行流执行 |
Consumer<T>… |
peeks |
可叠加的后续操作 |
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);
参数说明
类型 |
参数名 |
描述 |
E |
entity |
实体对象 |
A |
attribute |
实体属性类型,也是list中元素的类型 |
LambdaQueryWrapper<E> |
wrapper |
支持lambda的条件构造器 |
SFunction<E, A> |
sFunction |
封装后list中的元素 |
boolean |
isParallel |
为true时底层使用并行流执行 |
Consumer<E>… |
peeks |
可叠加的后续操作 |