MyBatis-Plus CRUD接口-SimpleQuery 工具類

2022-03-24 14:52 更新
  • 對?selectList?查詢后的結果用?Stream?流進行了一些封裝,使其可以返回一些指定結果,簡潔了api的調(diào)用
  • 需要項目中已注入對應實體的?BaseMapper?
  • 對于下方參數(shù)?peeks?,其類型為?Consumer...?,可一直往后疊加操作例如:?List<Long> ids = SimpleQuery.list(Wrappers.lambdaQuery(), Entity::getId, System.out::println, user -> userNames.add(user.getName()));?

keyMap

// 查詢表內(nèi)記錄,封裝返回為Map<屬性,實體>
Map<A, E> keyMap(LambdaQueryWrapper<E> wrapper, SFunction<E, A> sFunction, Consumer<E>... peeks);
// 查詢表內(nèi)記錄,封裝返回為Map<屬性,實體>,考慮了并行流的情況
Map<A, E> keyMap(LambdaQueryWrapper<E> wrapper, SFunction<E, A> sFunction, boolean isParallel, Consumer<E>... peeks);

參數(shù)說明

 參數(shù)名  類型  描述
 ?entity?  E  實體對象
 ?attribute?  A  實體屬性類型,也是map中key的類型
 ?wrapper?  LambdaQueryWrapper<E>  支持lambda的條件構造器
 ?sFunction?  SFunction<E, A>  實體中屬性的getter,用于封裝后map中作為key的條件
 ?isParallel?  boolean  為true時底層使用并行流執(zhí)行
 ?peeks?  Consumer<E>...  可疊加的后續(xù)操作

map

// 查詢表內(nèi)記錄,封裝返回為Map<屬性,屬性>
Map<A, P> map(LambdaQueryWrapper<E> wrapper, SFunction<E, A> keyFunc, SFunction<E, P> valueFunc, Consumer<E>... peeks);
// 查詢表內(nèi)記錄,封裝返回為Map<屬性,屬性>,考慮了并行流的情況
Map<A, P> map(LambdaQueryWrapper<E> wrapper, SFunction<E, A> keyFunc, SFunction<E, P> valueFunc, boolean isParallel, Consumer<E>... peeks);

參數(shù)說明

 參數(shù)名  類型  描述
 ?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時底層使用并行流執(zhí)行
 ?peeks?  Consumer<E>...  可疊加的后續(xù)操作

group

// 查詢表內(nèi)記錄,封裝返回為Map<屬性,List<實體>>
Map<K, List<T>> group(LambdaQueryWrapper<T> wrapper, SFunction<T, A> sFunction, Consumer<T>... peeks);
// 查詢表內(nèi)記錄,封裝返回為Map<屬性,List<實體>>,考慮了并行流的情況
Map<K, List<T>> group(LambdaQueryWrapper<T> wrapper, SFunction<T, K> sFunction, boolean isParallel, Consumer<T>... peeks);
// 查詢表內(nèi)記錄,封裝返回為Map<屬性,分組后對集合進行的下游收集器>
M group(LambdaQueryWrapper<T> wrapper, SFunction<T, K> sFunction, Collector<? super T, A, D> downstream, Consumer<T>... peeks);
// 查詢表內(nèi)記錄,封裝返回為Map<屬性,分組后對集合進行的下游收集器>,考慮了并行流的情況
M group(LambdaQueryWrapper<T> wrapper, SFunction<T, K> sFunction, Collector<? super T, A, D> downstream, boolean isParallel, Consumer<T>... peeks);

參數(shù)說明

 參數(shù)名  類型  描述
 ?entity?  T  實體對象
 ?attribute?  K  實體屬性類型,也是map中key的類型
 ?-?  D  下游收集器返回類型,也是map中value的類型
 ?-?  A  下游操作中間類型
 ?-?  M  最終結束返回的Map<K, D>
 ?wrapper?  LambdaQueryWrapper<E>  支持lambda的條件構造器
 ?sFunction?  SFunction<E, A>  分組依據(jù),封裝后map中作為key的條件
 ?downstream?  Collector<T, A, D>  下游收集器
 ?isParallel?  boolean  為true時底層使用并行流執(zhí)行
 ?peeks?  Consumer<T>...  可疊加的后續(xù)操作

list

// 查詢表內(nèi)記錄,封裝返回為List<屬性>
List<A> list(LambdaQueryWrapper<E> wrapper, SFunction<E, A> sFunction, Consumer<E>... peeks);
// 查詢表內(nèi)記錄,封裝返回為List<屬性>,考慮了并行流的情況
List<A> list(LambdaQueryWrapper<E> wrapper, SFunction<E, A> sFunction, boolean isParallel, Consumer<E>... peeks);

參數(shù)說明

 參數(shù)名  類型  描述
 ?entity?  E  實體對象
 ?attribute?  A  實體屬性類型,也是list中元素的類型
 ?wrapper?  LambdaQueryWrapper<E>  支持lambda的條件構造器
 ?sFunction?  SFunction<E, A>  封裝后list中的元素
 ?isParallel?  boolean  為true時底層使用并行流執(zhí)行
 ?peeks?  Consumer<E>...  可疊加的后續(xù)操作


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號