- 博客(164)
- 资源 (1)
- 收藏
- 关注
原创 代码合并Git出现refusing to merge unrelated histories错误
解决refusing to merge unrelated histories问题
2022-11-11 11:32:16
1080
原创 解决上传图片时报错Uncaught (in promise) DOMException: Failed to execute ‘put‘ on ‘IDBObjectStore‘
SpringBoot过滤器排除特定请求的URL方法
2022-09-12 21:48:04
4648
原创 Linux环境使用shell脚本启动springcloud多服务
服务启动脚本脚本中需定义服务的端口号,jar包的名称和版本号以及jar包存放的路径。#!/bin/bashjar_path=/opt/jarlogs_path=/opt/logsjar_version=0.0.1-SNAPSHOTjar_array=('user' 'gateway')user_port=8001gateway_port=8002echo "services start begin..."for i in ${jar_array[*]}; do nohup java
2022-05-25 22:05:18
630
原创 shell脚本报错期待二元表达式
shell中对字符串判空报错信息:第 7 行:[: 2531: 期待二元表达式;排查过程:使用指令sh -x start.sh对脚本进行调试,发现报错的地方是因为对变量进行了判断,而变量返回了数组,执行出错;解决办法:将原来的判断if [ $sid ]; then使用双引号""进行判空,写法改为if [ "$id" == "" ]; then使用cp -f依然出现提示现象:使用cp -f指令,命令框依然出现提示是否覆盖,需要用户进行确认;原因:cp指令被设置别名,cp别名默认为cp
2022-05-25 21:46:21
5249
原创 解决报错Rsa Public Key not Find
解决Rsa Public Key not Find出现这个问题的原因,我发现是因为没有把注册机放到Navicat安装路径下面导致的。解决:需将注册机复制到Navicat安装目录中。解决No All Pattern Found! File Already Patched?出现此提示,是因为之前在电脑上已经使用注册机注册过了,无法重新进行注册。解决:1.使用WIN+R输入regedit指令,编辑注册表;2.在注册表中找到HKEY_CURRENT_USER\SOFTWARE\PremiumSof
2022-05-11 21:52:57
19712
11
原创 Spring Cloud Alibaba脚手架搭建
Spring Cloud AlibabaSpring Cloud Alibaba是国产微服务一站式解决方案,提供一些列微服务组件,只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案。功能组件Alibaba体系跟Netflix体系有一些区别,主要体现在其官方推荐的组件上。Alibaba推荐的组件包括:Nacos:用于构建云原生应用的服务注册与发现、配置管理的平台;Sentinel:从流量控制、熔断降级等方面维护服务的稳定性;Dubbo:高效能Java
2022-05-04 20:19:31
6056
3
原创 MySQL之为什么不建议使用外键约束
接上篇短文中提到我们项目中不会设置外键,这里简单谈下原因。外键的优点外键能够保证数据的一致性和完整性,通过设置外键,数据库就会判断数据的完整性,不需要在应用代码里实现。外键的缺点性能问题比如table_a和table_b通过外键关联,当往table_a插入数据时,数据库就会去查询外键关联的table_b里面有没有对应数据,没有对应数据是没法入库成功的。同时,在大数据量入库的情况下,每次入库都需要先查询会导致性能瓶颈。因此,阿里巴巴Java开发手册里建议,不得使用外键与级联,一切外键概念必须在应
2022-03-07 11:36:54
1469
原创 导出excel数据查询超时问题排查
最近遇到一个导出Excel文件时报超时的问题,经过排查,最终发现是MySQL索引失效导致的。排查思路Excel导出这个功能是先将数据查询出来组装好,再通过POI方式写入到Excel文档中,生成的Excel文件放到FastDFS文件服务器,最后把文件服务器中的文件地址返回给浏览器,供浏览器下载。首先是怀疑Excel导出数据量过大,服务器承受不了导致超时,但一问人家测试人员才导出5K+的数据,完全不至于;怀疑导出没有使用异步进程,没有使用多线程,查看源代码是使用了CompletableFuture.
2022-03-04 23:13:22
3758
原创 MySQL索引类型简介
MySQL索引的作用数据库系统在查询数据时,是按照当前行的所有列数据进行匹配。当对某一列设置了索引后,就可以只针对当前索引列进行查询,这样可以提升查询效率。索引实质上是一张描述索引列的列值与原表数据行一对一关系的关系数据表。就好比是字典里的音序检索,根据拼音首字母能够快速找到文字所在的页码位置。索引是MySQL数据库性能调优的基础。MySQL有哪些索引类型MySQL主要有五种索引类型:普通索引[index]唯一索引[unique]主键索引[primary key]组合索引[index]
2022-03-04 21:52:49
4161
原创 Spring ENC加密解密
使用jasypt工具加密在maven中引入jasypt依赖包:<dependency> <groupId>com.test.caep</groupId> <artifactId>jasypt-spring-boot-starter</artifactId></dependency>加密进入maven仓库中jasypt所在的目录,输入cmd进入命令窗口,执行指令:java -cp jasypt-1.9.3.j
2022-02-14 18:11:35
16666
原创 解决Postman发送请求报错org.springframework.web.bind.MissingServletRequestParameterException
异常现象最近使用Postman调试接口时出现报错如下:org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'userId' is not present问题原因首先从报错的字面信息来理解,是说有一个必填参数没有传值;如果这个参数是非必填参数的话,我们应该设置该参数的required属性为false: @RequestParam(required = fals
2022-01-16 23:52:23
25534
4
原创 使用Navicat复制数据到excel表格
Navicat复制功能通过select * from table where 1=1;筛选出数据后,我们可以将字段名和数据很便捷地复制到excel表格中。方法:选中需要复制的数据源,右键选择复制为-制表符分隔值(字段名和数据)。...
2022-01-05 17:38:13
1424
原创 Spring事务提交后处理TransactionSynchronizationManager#afterCommit
Spring事务提交后处理最近在业务处理中遇到一个锁表问题,经过排查发现是在微服务A中更新数据主表a,而更新方法中又通过RPC调用了另一个微服务B的函数,函数中更新数据子表b时也更新数据主表a,由于微服务A数据库事务并没有释放主表a的写库锁,微服务B更新数据时就会报出锁表的错误信息。这个时候考虑到有两种解决方案,一个是分布式事务锁,一个是在微服务B中先将前面写库的事务进行commit。这里我们用的第二种方式。实现方式如下示例:if (TransactionSynchronizationManager
2022-01-02 22:36:32
4875
原创 算法的时间复杂度
时间复杂度时间复杂度是决定一个算法好坏的重要指标。一个算法的好坏通常从算法的正确性、健壮性,时间复杂度和空间复杂度来衡量。一个算法中的语句执行次数称为语句频度或时间频度,记为T(n),n称为问题的规模。时间复杂度用标记符号O表示,定义为T[n] = O(f(n))。常见复杂度复杂度通用叫法O(1)常数阶O(n)线性阶O(n2)平方阶O(log n)对数阶O(2n)指数阶O(n2)双层for循环一般复杂度为O(n2)。示例代码:in
2021-12-12 20:11:22
400
原创 Java List集合查找元素是否重复
查找List集合中是否有元素重合并返回元素信息package main;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class ListTest { public static void main(String[] args) { List<Map<String, Object>> li
2021-12-12 15:32:33
1073
原创 Java Calendar获取当前日期的当月第一天
Calendar获取当前日期的当月第一天public class CalendarTest { /** * 获取当前日期的当月第一天 * * @return String */ public static String getFirstDayOfMonth() { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); Calen
2021-12-08 19:01:51
2623
原创 MySQL如何实现select into 临时表的功能
select into 临时表最近在写sql脚本时遇到需要将数据放到临时表中,供后续insert数据时使用。首先想到的是使用select into这个写法:select * into temp_test from user where id=007;写完在Navicat执行报错,发现MySQL居然是不支持select into这种写法的,没办法,只能转换思路。这个时候我又想起来有一个create table as select * from old_table的用法,想着是不是可以通过select
2021-11-14 20:38:18
4592
原创 mysql如何交换两列的值
最近遇到了需要将表里的两列值进行互换,原因是存库时值存放反了。在编码语言中,我们一般可以通过定义一个临时变量c,将b赋值给c,a赋值给b,c赋值给a就能实现a和b的值互换。那么,在mysql中,非储存过程的sql语句,没有定义变量的过程,如何实现呢?我们可以将原表选择出一张临时表,再根据临时表字段的值进行交换。UPDATE t as t1, t as t2 set t1.a=t1.b,t2.b=t2.a where t1.id=t2.id;...
2021-10-31 18:42:23
1241
原创 Java函数对基本类型参数的修改
int类型参数修改public static void main(String[] args) { int count = 0; Map<String, Object> map = new HashMap<>(); map.put("person", "张三"); testParam(count, map); System.out.println("count: " + count); // 0
2021-10-14 18:54:49
1577
原创 MySQL使用JSON_EXTRACT获取json字符串某个键的值
JSON_EXTRACTMySQL5.7版本以后增加了JSON_EXTRACT函数,可用于获取json字符串中某个键的值。示例:JSON_EXTRACT('{"typeId": "001", "code": "C01"}', "$.typeId")获取到的typeId值为"001",带有双引号,我们可以再用REPLACE函数去掉双引号。REPLACE(JSON_EXTRACT('{"typeId": "001", "code": "C01"}', "$.typeId"), '"', '')运
2021-10-07 11:34:07
905
原创 Windows10配置hosts文件后被莫名还原
最近由于在外驻场支持项目上线,配置了几条域名映射记录,但是第二天重启电脑后,发现配置的hosts文件莫名其妙地被还原到之前的版本了,连修改日期都变成之前的。在网上查找资料,说用notepad++编辑进行保存,或者使用管理员权限进行编辑,试过都不好使。我还试了在git bash中使用vim进行编辑保存,仍然被还原。终于,我进入C:\Windows\System32\drivers\etc目录下仔细查看,发现有个hosts_backup的文件,这个文件的修改日期正是被还原的hosts的修改日期,即该备份.
2021-09-30 17:01:22
14583
5
原创 解决Postman由于找不到vcruntime140_1.dll无法继续执行代码而无法启动的问题
问题现象:Postman启动时报错“由于找不到vcruntime140_1.dll无法继续执行代码”。解决办法:针对Windows10系统,重新下载vcruntime140_1.dll并复制到C:\Windows\System32\路径下。下载地址:vcruntime140_1.dll
2021-09-30 16:33:54
611
原创 MySQL创建唯一索引时报错Duplicate entry * for key
场景在MySQL表创建唯一索引时,出现报错Duplicate entry * for key.使用show index from table确认table中并不存在重名的唯一索引名称。解决仔细看报错信息,根据那串ID数字,发现是表中出现违反创建的唯一索引键规则的重复数据,将此数据删除后创建唯一索引成功。ALTER TABLE person ADD UNIQUE `UNI_person_area`(`person_id`, `area_id`) USING BTREE COMMENT "人员重复"
2021-09-20 16:43:23
10852
原创 使用arthas jad比较线上代码是否最新
arthas是阿里巴巴开源的Java应用诊断利器。jad指令的应用场景修复Bug本地测试无误后,打包部署到线上环境,发现bug依然存在…这时是不是很想看看线上环境里的代码是否包含自己修复Bug的代码当代码里引用了其他领域或者第三包中的方法,想要在线上环境看下其中的代码逻辑…这时arthas jad指令就派上用场了,jad指令能将.class文件反编译成可读的java文件。jad指令的使用找到arthas的安装目录find . -name "arthas*"进入该目录下并启动art.
2021-09-20 16:07:03
614
原创 Postman本地测试上传MultipartFile文件接口
本文旨在记录如何在本地debug调试springboot后台服务中的上传文件接口。后端服务@RequestMapping("/import") public void import(@RequestParam("file") MultipartFile file, HttpServletRequest request, HttpServletResponse response) { .
2021-09-20 15:31:36
5025
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人