1.Hutool工具包的DB
Hutool学习 —— 数据库 - db (一)Db简单操作 - 简书 (jianshu.com)
2.Consumer函数接口
Java 常用函数式接口之Consumer接口 - LeeHua - 博客园 (cnblogs.com)
3.sql高级用法merge into
SQL高级知识——MERGE INTO - 知乎 (zhihu.com)
在批量更新大量的数据时,使用Insert 和Update操作会出现效率低下,甚至卡死的情况。改用 MERGE INTO 代替执行批量更新,会提升执行效率。
这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于insert+update,尤其是在大数据量面前,效率越明显。
sql高级用法--行转列
oracle的 listagg() WITHIN GROUP () 行转列函数的使用_listagg within group用法-CSDN博客
4.链式编程,stream流
public TWbImportRecord setModuleCodes(List moduleCode) {
this.moduleCode = moduleCode.stream().reduce((s1, s2) -> StrUtil.join(StrUtil.COMMA, s1, s2)).orElse(null);
return this;
}
使用了stream().reduce()方法来拼接字符串,中间用了StrUtil工具在两个String字符串间插入‘,’。
public List getModuleCodes() {
return Optional.ofNullable(moduleCode).map(c -> StrUtil.split(c, StrUtil.COMMA)).orElse(Lists.newArrayList());
}
将一个String串拆分成一个List
Optional详解:
Optional是个好东西,你会用么?(全面深度解析)-CSDN博客
5.枚举类
java枚举类的定义,使用,本质_params_is_invalid-CSDN博客
6.CompletableFuture
CompletableFuture使用详解(全网看这一篇就行)-CSDN博客
这篇文章有一些问题,如果异步任务没执行完,get方法是阻塞的,带sync的方法是共用同一个线程,不带sync的流式任务才是用不同的线程。
CompletableFuture get 与 join区别 - 掘金 (juejin.cn)
7流式编程
流式编程与Stream - 知乎 (zhihu.com)
8 linux常见指令
Linux 常用操作命令大全(最后更新时间:2022年1月)_linux常用命令-CSDN博客
9.ThreadPoolTaskScheduler
在 SpringBoot 中使用 ThreadPoolTaskScheduler 实现定时任务-CSDN博客