当前位置: 首页 > news >正文

Java程序猿搬砖笔记(十九)

文章目录

    • Mysql给查询记录增加序列号
      • 使用变量
      • 使用使用ROW_NUMBER() OVER()窗口函数
    • SpringBoot加载配置类的流程
    • maven-compiler-plugin
    • maven默认打包方式
    • Git根据标签创建新的分支
    • springCloud Gateway StripPrefix和PrefixPath过滤器的区别
    • Git cherry-pick命令
    • MySQL 正则表达式匹配
    • Mybatis查询数据为null时,返回情况总结
    • 使用Jackson把JSON字符串转为List
    • 使用Fastjson把JSON字符串转为List
    • @Transactional注解失效的场景
    • 解决Git删除本地文件无法重新从远程拉取该文件的问题
    • Windows10操作用户的一些命令
    • 绿豆沙护眼色
    • SpringBoot @ConfigurationProperties注解注入的属性为null
    • 中文顿号分割字符串正则表达式
    • Maven命令
    • RedissonClient加锁、释放锁示例代码
    • Git设置代理命令
    • 查询MySQL数据库的默认字符集和排序规则
    • 查询MySQL数据库所有表字段的字符集和排序规则

Mysql给查询记录增加序列号

使用变量

示例:

SET @row_number := 0;
SELECT (@row_number:=@row_number + 1) AS serial_number, t.*
FROM (SELECT * FROM your_table) AS t;

使用使用ROW_NUMBER() OVER()窗口函数

需要MySQL版本8.0以上
示例:

SELECT ROW_NUMBER() OVER (ORDER BY some_column) AS serial_number, *
FROM your_table;

在这个查询中,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以适应这些需求。以下是配置示例:

<project>...<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>${maven.compiler.plugin.version}</version><configuration><source>${maven.compiler.source}</source><target>${maven.compiler.source}</target><compilerArgument>-parameters</compilerArgument></configuration></plugin></plugins></build>...
</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

try {// 转为JSON字符串String jsonString = JSON.toJSONString(list);// list为java对象List<RepetitionRateVo> list = objectMapper.readValue(jsonString, new TypeReference<>(){});return new ListResult<>(list);
} catch (JsonProcessingException e) {throw new RuntimeException(e);
}

使用Fastjson把JSON字符串转为List

// 转为JSON字符串
String jsonString = JSON.toJSONString(list); // list为java对象
List<RepetitionRateVo> list =  JSONObject.parseArray(jsonString ,RepetitionRateVo.class);

@Transactional注解失效的场景

  • 非public修饰的方法;
  • 注解的timeout设置过小;
  • 代码中使用 try/catch处理异常,并且没有抛出新异常
  • 方法没有加@Transactional,调用类内部的@Transactional方法
  • bean没有被Spring管理(即类没有加@service、@component注解)
  • 数据库不支持事务

解决Git删除本地文件无法重新从远程拉取该文件的问题

执行下面的命令,然后重新拉取即可:

git reset --hard

参考链接

Windows10操作用户的一些命令

WIN+R运行:

// 启用/关闭管理员账户
net user administrator /active:yes
net user administrator /active:no
// 可以新增、修改、删除用户
netplwiz

绿豆沙护眼色

RGB 204 232 207

SpringBoot @ConfigurationProperties注解注入的属性为null

@Component
@ConfigurationProperties(prefix="activity")
public class ActivityConfig {private String reviewObjectStartTime;private String reviewObjectEndTime;private String expertReviewStartTime;private String expertReviewEndTime;private Integer reviewObjectLimit;
}

原因:类中没有set方法。
解决方法:类中加入@Data注解

和这个依赖没有关系(不加也可以注入成功):

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional>
</dependency>

中文顿号分割字符串正则表达式

^(?!)([^]+)*[^]+(?!)$

正确的示例:网络、无线、IT、业务
错误的示例:网络、无线、IT、业务、
错误的示例:、网络、无线、IT、业务
错误的示例:网络、、无线、IT、业务

Maven命令

// Maven查看所有定义的配置文件
mvn help:all-profiles
// 显示当前构建中激活的所有配置文件 (idea勾选了也没有打印出来,需要启动/打包的时候才生效?)
mvn help:active-profiles

RedissonClient加锁、释放锁示例代码

RLock lock = redissonClient.getLock("FormalAudit-"+dbAchievementApplication.getCode());
long start = System.currentTimeMillis();
try {// 尝试加锁if (lock.tryLock(300, 20000, TimeUnit.MILLISECONDS)) {}else{log.info("线程:{}未获取到锁",Thread.currentThread().getName());}
} catch (Exception e) {log.error("执行异常:{}", e.getMessage(),e);
} finally {//释放锁if (lock.isHeldByCurrentThread()) {log.info("线程:{}准备释放锁,执行业务逻辑消耗时间{}",Thread.currentThread().getName(),System.currentTimeMillis()- start);lock.unlock();}
}

Git设置代理命令

// 查看代理
git config --global http.proxy// 设置代理
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy https://127.0.0.1:7890// 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy

查询MySQL数据库的默认字符集和排序规则

奖励现网查询出的和工具显示的不一致,工具是对的

SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME 
FROM information_schema.SCHEMATA 
WHERE SCHEMA_NAME = '数据库名';

查询MySQL数据库所有表字段的字符集和排序规则

SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, CHARACTER_SET_NAME, COLLATION_NAME
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'your_database_name'
AND TABLE_NAME = 'your_table_name';
http://www.dtcms.com/a/287892.html

相关文章:

  • 零基础 “入坑” Java--- 十二、抽象类和接口
  • 从五次方程到计算机:数学抽象如何塑造现代计算
  • 大数据之路:阿里巴巴大数据实践——日志采集与数据同步
  • 网络爬虫概念初解
  • Rust Web 全栈开发(九):增加教师管理功能
  • 对话访谈 | 盘古信息×锐明科技:中国企业高质量出海“走进去”和“走上去”
  • 实验室危险品智能管控:行为识别算法降低爆炸风险
  • 配置华为交换机接口链路聚合-支持服务器多网卡Bind
  • element ui 表格懒加载操作问题
  • 最终分配算法【论文材料】
  • OpenCV 官翻6 - Computational Photography
  • 市场数据+幸存者偏差提问,有趣的思考?
  • 基于dcmtk的dicom工具 第六章 StoreSCU 图像发送
  • 研究的艺术
  • simulink系列之模型接口表生成及自动连线脚
  • 图 —— 拓扑排序➕Bitset!
  • XSS原型与原型链
  • Linux 常用命令详解(含目录结构 / 文件操作 / 查找 / 解压缩)- 新手入门教程
  • 接口测试工具
  • PDF发票批量打印工具哪个好?高效打印发票的实用工具推荐
  • LangGraph是一个基于图计算的大语言模型应用开发框架
  • 重学Framework Input模块:如何实现按键一键启动Activity-学员作业
  • 死锁的认识与处理
  • 使用 .NET 6.0 的简单 WebSocket 客户端和服务器应用程序
  • 基于GEE与哨兵2号的土地覆盖分类方法及实现
  • 137、真心话大冒险测谎器3.0
  • [故障诊断方向]基于二维时频图像和数据增强技术的轴承故障诊断模型
  • 家庭KTV v1.1.9 | 曲库丰富,无限制免费K歌
  • Kotlin main函数
  • RabbitMQ—事务与消息分发