记录一个数据库长事务bug
数据库长事务中的行锁导致其他线程更新行失败
Spring通用Excel导出组件
简要介绍该组件基于 FastExcel, 通过几个关键的注解即可将数据导出为 Excel 或 Csv 等格式的文件。只需要专注地处理数据返回部分,减轻了开发人员对 Excel、流和响应处理的负担。FastExcel 是 EasyExcel 的一个续作,由原 EasyExcel 作者开发,在功能完全兼容 EasyExcel 的原有功能特性。 功能特性 使用注解创建导出功能 支持同步和异步导出 基于 EasyExcel,不会造成内存溢出问题 基本使用方法 为导出接口的 Controller 方法添加 @Export 注解 为导出的实体类添加 @ExportEntity 注解 需要导出的实体...
一些不错的脚本
收录的一些减轻工作量的Shell或Python脚本
Git命令笔记
GIT 官方中文文档 压缩提交在 Git 中 squash 并不是一个命令,而是一个关键词。它允许使用 rebase 命令将多个提交合并为一个提交。 但在使用时,应确保压缩的分支没有被其他分支引用,防止分支混乱! 使用指南: 检查历史记录:使用 git log 命令查看提交记录。git log --oneline --graph,--oneline 将信息显示在一行中 选择需要合并的提交:使用 git rebase -i 命令git rebase -i HEAD~<COUNT>,COUNT 表示需要合并的提交数量执行上述命令后,会进入编辑器中,将记录前的 pick...
连号问题解决方案
问题情景在数据库中,存在表结构如下: Column Type id bigint(20) number bigint(20) 要求找出 number 字段中所有至少连续出现两次的数据。 这类问题在业务场景中并不少见,例如,要求对一些连续的发票编号、订单编号进行处理。 在处理过几次这个问题后,想要通过文章将简要总结一下这类问题的解法。 SQL 窗口函数这个问题在 LeetCode 的题库中也有类似的问题180. 连续出现的数字,都可以使用窗口函数来解决。 窗口函数窗口函数是一种强大的 SQL 功能,用于对结果集中的某些行进行计算,同时保留每行的独立性。与聚合函数不同,窗...
SpringWeb请求通用加密组件
使用注解对Web请求进行统一加解密处理
MySQL MVCC
MySQL事务事务具备 ACID 特性,具体描述如下: 原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行[3]。 一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束[3]。 隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行[3]。 持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中[3]。 在典型的应用程序中,多个事务并发运行,经常会导致操作相同的数据来完成各自...
基于AOP、MyBatis的通用查询增强
Github: https://github.com/lxydamn/zeon/tree/master/bd-enhancer 问题场景在大多数业务场景中,表通常会关联多个表,比如用户表和角色表,用户表和权限表等等。在查询用户信息时,如果不在 SQL 中写关联,则会在业务逻辑中编写关联逻辑,随着业务量的增长,实体类不断增多,关联的逻辑也会不断增加,这时候不仅要在业务逻辑中编写这部分关联逻辑,还有业务本身的逻辑,那么代码量就会非常的大。 举例: 12345678910111213141516171819202122232425262728293031323334353637383940...