MyBatis-Plus CRUD接口-SimpleQuery 工具類

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

keyMap

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

參數(shù)說明

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

group

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

參數(shù)說明

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

list

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

參數(shù)說明

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


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)