Java程序猿搬砖笔记(十九)
Mysql给查询记录增加序列号
使用变量
示例:
1 | SET @row_number := 0; |
使用使用ROW_NUMBER() OVER()窗口函数
需要MySQL版本8.0以上
示例:
1 | SELECT ROW_NUMBER() OVER (ORDER BY some_column) AS serial_number, * |
在这个查询中,ROW_NUMBER()
函数根据some_column
列的排序来为每行生成一个序列号。
SpringBoot加载配置类的流程
包含:
1、SpringBoot加载配置的流程(简化)
2、@ComponScan和@Import注解的作用
3、@SpringBootApplication注解原理
4、SpringFactories机制
maven-compiler-plugin
Maven打包并不一定必须要显式引入maven-compiler-plugin依赖,因为Maven的超级POM(Super POM)已经默认包含了这个插件的基本配置。当您执行Maven构建时,即使在项目的pom.xml中没有明确声明maven-compiler-plugin,Maven仍然会在构建生命周期的compile阶段尝试编译源代码。
不过,虽然不是“必须”手动引入,但在许多实际场景下,我们往往会针对特定的Java编译版本、源代码和目标字节码版本、或者额外的编译器参数进行自定义配置。在这种情况下,就需要在项目的pom.xml文件中显式地声明并配置maven-compiler-plugin,以确保项目按照期望的方式和环境进行编译。
例如,如果您正在使用非默认的Java版本,或者想要启用特定的编译器特性,就必须在pom.xml中配置maven-compiler-plugin以适应这些需求。以下是配置示例:
1 | <project> |
maven默认打包方式
Git根据标签创建新的分支
语法如下:
git checkout -b 新的分支名 标签名
springCloud Gateway StripPrefix和PrefixPath过滤器的区别
Git cherry-pick命令
命令作用:从分支A挑选一个或多个特定的commit,并将这些提交应用到分支B上。可以快速修复某些问题,而不需要合并整个分支代码。
MySQL 正则表达式匹配
MySQL中的REGEXP操作符,允许使用正则表达式来匹配字符串数据。
示例:
– 匹配包含"4"的数据
SELECT *
FROM t_external_award_apply
WHERE strategy_domain REGEXP ‘“4”’;
正则表达式匹配效果:
Mybatis查询数据为null时,返回情况总结
- 返回类型为集合类型,返回一个空集合(大小为0,非null),[不会]抛空指针异常
- 返回类型为基本类型(int、long),[会]抛空指针异常。
- 返回类型为基本类型的包装类型(Integer、Long),返回null
使用Jackson把JSON字符串转为List
1 | try { |
使用Fastjson把JSON字符串转为List
1 | // 转为JSON字符串 |
@Transactional注解失效的场景
- 非public修饰的方法;
- 注解的timeout设置过小;
- 代码中使用 try/catch处理异常,并且没有抛出新异常
- 方法没有加@Transactional,调用类内部的@Transactional方法
- bean没有被Spring管理(即类没有加@service、@component注解)
- 数据库不支持事务
解决Git删除本地文件无法重新从远程拉取该文件的问题
执行下面的命令,然后重新拉取即可:
1 | git reset --hard |
Windows10操作用户的一些命令
WIN+R运行:
1 | // 启用/关闭管理员账户 |
绿豆沙护眼色
1 | RGB 204 232 207 |
SpringBoot @ConfigurationProperties注解注入的属性为null
1 |
|
原因:类中没有set方法。
解决方法:类中加入@Data注解
和这个依赖没有关系(不加也可以注入成功):
1 | <dependency> |
中文顿号分割字符串正则表达式
1 | ^(?!、)([^、]+、)*[^、]+(?!、)$ |
正确的示例:网络、无线、IT、业务
错误的示例:网络、无线、IT、业务、
错误的示例:、网络、无线、IT、业务
错误的示例:网络、、无线、IT、业务
Maven命令
1 | // Maven查看所有定义的配置文件 |
RedissonClient加锁、释放锁示例代码
1 | RLock lock = redissonClient.getLock("FormalAudit-"+dbAchievementApplication.getCode()); |
Git设置代理命令
1 | // 查看代理 |
查询MySQL数据库的默认字符集和排序规则
奖励现网查询出的和工具显示的不一致,工具是对的
1 | SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME |
查询MySQL数据库所有表字段的字符集和排序规则
1 | SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, CHARACTER_SET_NAME, COLLATION_NAME |