实习遇到问题备忘录

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博客

你可能感兴趣的:(java)