- 博客(85)
- 资源 (20)
- 收藏
- 关注
原创 MySQL索引的原理
下面这个图,表里有三条数据,每条数据都有三个字段,分别是ID、name、age,这个时候我需要查询一条SQL,select name,age from user where name=‘张三’,如果这个时候,name上了一个普通索引,他查询的顺序就是:先拿到当前普通索引列的值,就是name,其次就可以拿到ID,也就是指向一个聚簇索引的一个键值,此时,这个普通索引只有索引列的值name,还有这个键值,也就是ID,那么这个age会怎么拿呢?我们增加一个ID为4的数据,发现无法提交,是没办法修改的。
2025-03-21 12:03:34
700
原创 AOP+MySQL实现一个简历的日志收集工具
只开一个线程处理日志保存逻辑,防止流量洪峰压垮保存逻辑侧</p>* <p>拒绝策略采用直接拒绝而非交给主线程处理,则当前的监控日志只能承担1001的TPS
2024-03-17 15:13:59
351
1
原创 项目工具收录
在定义map的时候,**使用到了一个ImmutableMap的东西,这是Google Guava里的一个类,可生成一个不可变的Map对象,这就意味着,初始化定义后,后续就无法再put修改了,它的这个特性可以保证线程的安全。**一般用来替换if-else的map,我们就是要求在初始化定义后,就不会再允许修改了,因此,这个ImmutableMap生成的map,可以很好地帮我们实现这一点。,就像上面定义的链式写法,若是用传统的map定义,就每次都要map.put()、map.put()地赋值。
2024-03-17 13:54:36
358
原创 Smb协议实现内网共享目录文件处理及踩坑记录
Smb协议实现内网共享目录文件处理及踩坑记录一、业务场景公司内网环境,有部分比较古老的业务数据保存在一台windows服务器的共享目录里面。现在需要操作这个windows服务器的共享目录来上传下载删除文件。二、共享目录三、查了查资料,操作windows共享目录要通过smb协议。途中遇到一个问题,smb的协议版本问题导致无法连接windows共享目录,最后在GitHub上找到一个日本人对smb封装的依赖。
2022-03-30 17:21:32
1769
5
原创 策略+建造者模式解决ifelse判断实际应用场景
策略模式解决ifelse判断实际应用场景1、业务场景根据志愿者角色判断确定需要给志愿者账户的积分。2、上代码- 添加志愿者策略接口VolunteerStrategy添加志愿者策略接口VolunteerStrategy ,策略接口新增一个给志愿者添加积分或者处理其他业务的方法public interface VolunteerStrategy { /** * 不同志愿者角色的用户给与其个人和组织对应不同比例的积分 * @param volunteerParameter
2022-03-30 16:47:04
663
原创 移动云服务器yum报错排查记录
一、问题:使用移动云安装centos,通过yum下载GCC时报错报错1Another app is currently holding the yum lock; waiting for it to exit... The other application is: yum Memory : 23 M RSS (415 MB VSZ) Started: Wed Nov 24 13:51:47 2021 - 02:13 ago State : Traced/Stopped,
2021-11-24 14:54:04
1715
原创 文件上传-base64转码
一、背景1、当前对接政府平台,使用文件流MultipartFile格式传输文件不支持,因此改用base64将文件转化为base64字符形式,通过body传参,然后后台再通过base64将字符串转化为文件File。我们的文件系统使用的是fastdfs2、代码 /** * 上传并返回文件路径和文件名 * @param file 文件 * @return 文件路径 * @throws IOException 异常 */ @ApiOperatio
2021-09-23 17:06:02
900
原创 springboot+redisson实现分布式锁
一、单机版实现1、导入依赖<dependencies> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.11.4</version> </dependency>
2021-08-31 16:48:43
265
原创 微信APP支付错误:201商户订单号重复
一、临近上线的时候微信支付功能出现了一个商户订单号重复的问题。APP调用后端接口预下单,获取微信的预下单ID。后台接口请求微信支付的时候返回这个错误。日志已经打印如下: CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, `created_at` datetime DEFAULT NULL COMMENT '创建时间', `modified_at` datetime DEFAULT NULL COMMENT '更新时间', `created_by` char(32) CHARA
2021-07-28 13:58:14
957
原创 雪花算法生成分布式id
/** * @author rambo * 雪花算法获取唯一ID */@Slf4jpublic class SnowFlakeUtil { private final long id; /** * 时间起始标记点,作为基准,一般取系统的最近时间 */ private final long epoch = 1524291141010L; /** * 机器标识位数 */ private final long worker
2021-07-28 10:52:23
131
原创 连表查询(group by)导致SQL报错的原因
报错代码 Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: Method queryTotal execution error of sql : SELECT COUNT(1) FROM ( SELECT ap.id AS activeId, ap.number, ap.`name` activity_plan_name, ap.organizat
2021-07-27 17:03:08
1417
原创 springboot整合fastdfs上传下载文件代码
一、添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <scope>test</scope> </dependency> &
2021-07-27 16:42:47
392
原创 Redis实现队列监听器订阅数据
1、创建redis监听器/** * @author rambo * Redis队列监听器 */@Configurationpublic class RedisMessageListener { /** * 创建连接工厂 * @param connectionFactory * @param listenerAdapter * @return */ @Bean public RedisMessageListenerCont
2021-07-27 16:30:10
2834
2
原创 Java学习路线思维导图
一、基础篇及面向对象思想二、服务器及前后端交互三、框架技术及进阶四、高阶开发掌握中间件技术及Linux、容器、并发编程思想等技术
2021-07-22 11:37:38
197
原创 全国行政区域数据及导入及接口实现及四级联动
一、先将SQL导入数据库https://download.csdn.net/download/qq_45614471/20419356https://download.csdn.net/download/qq_45614471/20419356二、接口全量查询所有四级父子行政区域数据1、实体类/** * 行政区域 VO * @author rambo */@ApiModel(value = "行政区域 VO", description = "行政区域 VO")@Getter@Sette
2021-07-22 11:16:15
1186
原创 使用alipay.sdk生成RSA和RSA2加密解密算法工具类
1、pom.xml中加入依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/
2021-07-08 10:23:28
1872
原创 Mybatis foreach 批量插入
一、业务:根据角色关联菜单RelationDto@Data@AllArgsConstructor@NoArgsConstructor@ApiModel(value = GlobalConstant.API_MODEL_IN + “-关联信息”)public class RelationDto implements Serializable {private static final long serialVersionUID = 1890569379952399719L;@NotNull(
2020-07-14 20:02:50
450
原创 代码生成器--idea插件EasyCode
一、Easycode是idea的一个插件,可以直接对数据的表生成entity,controller,service,dao,mapper,无需任何编码,简单而强大。二、安装及使用建议大家在安装一个插件,叫做Lombok。Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。出现的神奇就是在源码中没有get...
2020-04-02 17:18:12
655
原创 java前后端分离之懒加载树形结构
一、图示:二、这里是前后端分离,懒加载需要前端配合,后端根据主节点的id或者父id来查询下一级并返回是否有子节点的标识,前端根据标识是否判断发送请求@RestController@RequestMapping("sysSellarea")public class SysSellareaController{ @ApiOperation(value = "懒加载查找所有销售区域")...
2020-04-02 13:02:17
2566
原创 根据树形下拉框展示右侧列表场景
一、场景图示:二、业务拆分和编程思路这里业务主要分为两大部分,一个左边树形结构,另一个是根据左边树形结构展示右侧列表。左边树形结构:全国是最大的主干,主干下面有主节点,每一个主节点下面分为子节点。表的设计如下:这里只需要关注parent_id,主节点的id=子节点的parent_id;树形结构代码展示:两种方式,一种是一次性加载,另一种是通过主干的id(子节点的父id),查当前节点下的...
2020-04-02 11:17:30
676
转载 Mysql中的三类锁
Mysql中的三类锁,你知道吗?以下文章来源于公众号码农沉思录,码猿技术专栏 ,仅做学习使用。正所谓有人(锁)的地方就有江湖(事务),人在江湖飘,怎能一无所知?今天不聊江湖,来细说一下Mysql中的三类锁,分别是全局锁、表级锁、行级锁。全局锁全局锁简单的说就是锁住整个数据库实例,命令是Flush tables with read lock 。当你需要为整个数据库处于只读的状态的时候,可以...
2020-04-01 19:24:01
388
原创 Java中的serialVersionUID
一、解释:Java的序列化的机制通过判断serialVersionUID来验证版本的一致性。在反序列化的时候与本地的类的serialVersionUID进行比较,一致则可以进行反序列化,不一致则会抛出异常InvalidCastException。二、运用eg:@ApiModel(value = "行政区域表")@Table(name = "sys_district")@Data@Ac...
2020-04-01 16:42:05
710
原创 mysql函数实现数据脱敏,隐藏业务字符-函数的使用
最近做了一个功能,是管理用户账户对接支付的一个模块,里面有一个是做提款账户的管理的功能,这个功能里面涉及到用户的银行卡号和手机号,根据需求为了保密性这里的银行卡号和手机号是不能在页面上展示的,需要后端来解决这个问题。因此我准备了两套方案来解决这个问题。一、通过mysql的concat、left、right系统函数:先看下页面效果:所以这里只需要在MySQL中操作即可获取到加密后的数据:ac...
2020-01-16 14:37:10
1210
(全国行政区域SQL数据2021版,四级联动用)t_elder_districts.sql
2021-07-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人