- 博客(118)
- 资源 (2)
- 收藏
- 关注
原创 mybatis 一对多查询 集合创建空对象的问题
在做 mybatis 一对多查询的时候, resultMap 里面用到了集合标签 collection ,后来发现 当该条数据没有子集的时候, collection 会自动创建一个属性都是null的对象。在collection 标签上 写上 notNullColumn 属性 ,notNullColumn =“id,name” ,意思是只要id,name 有一个为null 则 就不创建这个子对象。
2024-09-26 10:36:29
277
原创 linux命令常见功能性分类整理
如果仍然需要更多空间,可能需要考虑添加额外的硬盘空间或调整分区大小。在执行任何删除操作之前,请确保备份重要数据以防止数据丢失。netstat -tuln |grep [端口];ss -tuln | grep [端口];删除旧的核心文件或日志文件。
2024-07-29 15:23:47
257
原创 Java HttpUtil 异步不等待调用
使用executeAsync()方法发送异步请求。使用thenAccept()方法处理异步请求的响应结果,并通过join()方法等待异步请求完成。
2024-06-14 11:11:05
1251
1
原创 数字类型字符串效验NumberUtil.isNumber和StringUtils.isNumber以及StringUtils.isNumberOrDecimal
【代码】数字类型字符串效验NumberUtil.isNumber和StringUtils.isNumber以及StringUtils.isNumberOrDecimal。
2023-08-14 11:20:27
543
原创 controller实体类接收参数赋默认值
@Datapublic class Person {private static final String DEFAULT_PAGE_VALUE = 0;private static final String DEFAULT_SIZE_VALUE = 0;private String page = DEFAULT_PAGE_VALUE;//新增加的字段private String size = DEFAULT_SIZE_VALUE;//新增加的字段private String hobby;}
2023-06-05 17:55:51
741
原创 linux中netstat相关命令
本文的重点是弄清楚netstat指令中每一列的含义而在这个过程中,顺便记录一些网络指令(比如ipconfig,tracert,arp,netstat,tasklist)以及一些网络概念(比如localhost,loopback,和0.0.0.0 的区别),整理一下也算是一个回顾。
2023-03-17 15:23:54
574
原创 数据库字段timestamp根据当前时间设置默认值
数据库字段timestamp格式,勾选根据当前时间戳更新.当新增数据时发现并不会有默认值,只有修改数据的时候才会自动生成默认值。这种情况可以通过设置默认值。
2023-03-14 10:08:06
1562
原创 Linux中用curl发送GET和POST请求
curl 使用 -X POST 可以发送POST消息。curl默认协议就是GET,直接使用 curl url相当于直接用浏览器打开。
2023-03-13 09:51:57
1905
原创 nginx常用命令与简单转发配置
具体忘记什么错误了,只记得给了/usr/nginx/logs/nginx.pid’路径。指定检测特定Nginx配置文件:-c表示configuration,指定配置文件。解决方式:打开nginx.pid文件,里面填写nginx主进程ID即可解决。分配置,可以不同的命名文件,将不同类型的转发配置到不同的文件里方便管理。1.运行reload重新加载配置文件命令时报错。主配置,通过include即可加载很多分配置。6.重新加载配置文件。
2023-03-09 15:01:54
923
原创 Optional 常用方法总结以及实战示例
empty : 创建一个空的Optional对象of:为非null的值创建一个Optional。of方法通过工厂方法创建Optional类。需要注意的是,创建对象时传入的参数不能为null。如果传入参数为null,则抛出NullPointerException。因此不经常用。ofNullable:为指定的值创建一个Optional,如果指定的值为null,则返回一个空的Optional。isPresent: 检查一个Optional对象中是否有值,只有值非空才返回true,否则返回false。
2022-11-28 11:43:23
311
原创 自定义注解+泛型+反射实现SQL拼接
生产需求,代码框架没有用到mybatis,采用SQL直接执行方式。因为需要对不同的表进行插入数据操作,这里通过自定义注解+泛型+反射工具类,实现智能化SQL拼接,代码封装思路挺好的,值得记录学习。
2022-08-15 16:51:37
517
原创 springboot自定义注解防止表单重复提交
功能实现:使用了自定义注解、自定义拦截器、redis缓存等知识点。2.防止重复提交拦截器类3.具体拦截逻辑类4.添加自定义拦截器类(必须有这个拦截才会生效)5.过滤器(构建可重复读取inputStream的request)======================== 以下是上述主要逻辑的配套工具类 ========================...
2022-08-10 19:07:03
355
原创 stream中map相关方法
这三个方法一般用于格式转换mapToDouble,mapToInt,mapToLong举例:map里面可以写判断,举个例子
2022-08-10 14:59:05
464
原创 解决数据库查询时间少8小时(时区)问题
从业务表查询数据入到统计表。数据库时间存储字段为timestamp,发现从业务表查出的时间数据入统计表后少了8小时。debug经查是查询业务表的输出就少了8小时。采用方法二,修改代码数据库连接即可解决。方式一是修改数据库服务本身的配置。...
2022-08-09 20:56:23
2902
原创 List中数据量过大如何处理?集合拆分 + 并发处理(Lists.partition + Semaphore)你值得拥有
代码】List中数据量过大如何处理?集合拆分 + 并发处理(Lists.partition + Semaphore)你值得拥有。
2022-08-04 17:32:29
907
原创 int在数据库表设计中长度的含义
发现数据库表中某一条数据的某一字段定义为int类型,长度为4,结果发现其数据却存储了7位数。M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关。当实际的值的长度 小于 (M)时,可以使用zerofill属性,让该值从左侧填满长度。也就是说,int的长度并不影响数据的存储精度,长度只和显示有关。当实际的值的长度 大于 (M)时,照样可以显示实际值的长度。unsigned(无符号) int 存储范围是 2^4*8。int类型的存储大小为4个字节。...
2022-08-04 10:45:52
1472
原创 分页助手返回数据缺少问题解决
前言生产中遇到分页返回数据异常问题。分页选择10条数据,结果只返回2条,切换第二页可能10条返回3条。问题原因mybatis中使用了一对多,导致查询出来了10条数据,经过一对多的合并,数据就变少了。解决方式拆分SQL,删除一对多写法,改为多次查询,先查主表。...
2022-08-01 10:26:46
537
原创 mysql 优化 Using join buffer (Block Nested Loop)
说明:生产环境发现接口响应慢,经查是SQL执行慢,发现是表关联时候右表数据量大,循环嵌套查询速度很慢。如图刚开始SQL执行计划这是测试环境,生产环境fsp_cor_inf数据量很大,经过排查发现是Using join buffer (Block Nested Loop)导致的查询慢,开始解决,首先,在表关联的地方建立索引,然后执行发现没有效果。然后,发现两表字符集不一致,一个是uft8一个是uft8mb4,可能这个原因导致的索引失效。随后修改表字符集然后发现还是没效果,原来上面修改的是表的字
2022-07-27 17:15:41
1800
原创 PageHelper自定义count(*)查询解决排序失效导致数据总数不对问题
生产问题:带条件查询全部订单,发现展示数据2条,数据总数40条。分析后发现是分页助手查询总数时候会优化SQL,去除排序,导致SQL中分组求最新一条数据的排序丢失,导致数据不对后条件筛选导致查询count的SQL总数和数据总数不一致。解决方式:自定义count(*)查询最新版的PageHelper支持自定义count,参考链接: https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/Changelog.md#504—
2022-07-11 14:17:36
1160
原创 mysql如何先排序后分组group by
**前言:**经常遇到需要对数据进行分组并取组内最新一条数据的需求,这边总结了3种方法。需求:查询业务流程明细表中每个业务流程最新明细信息实现:mysql 5.6可以这样:5.7以后对子查询排序做了优化,子查询全表排序失效,网上很多是在排序后面加limit的,这样感觉很不好,数据量大会丢数据,建议可以这样:方式一:方式二:...
2022-07-04 10:34:38
6606
8
原创 SQL正则匹配报错换个思路解法
**需求:**表中ancestors字段表示数据层级,当想匹配层级中含有13的数据但是不能匹配到131这种数据.思路:首先想到用like匹配,发现数据前后没有逗号,不好去匹配,然后想到了正则,发现SQL中regexp不支持复杂正则,例如"(?...
2022-06-22 16:46:16
476
原创 通过parent_id递归处理list集合成层级结构示例
**前言:**开发中经常遇到同一张表里面的数据需要通过id和parent_id进行层级处理,这里提供递归处理的代码示例。
2022-06-22 15:15:54
814
1
原创 group by分组和distinct去重导致数据量变大
问题出现:1.表通过公司名字distincy去重查询数据100条2.表通过公司地域分组和通过公司名字去重查询数据101条问题分析:存在相同名字不同地域的数据,SQL2先group by 把相同名字的数据分到不同的组里,然后在不同的组里面去distinct去重,所以导致SQL数据总量增多问题解决:找到脏数据,处理脏数据,当前我通过下面SQL查找相同名字不同地域的数据,然后修改脏数据解决问题....
2022-06-20 10:06:54
1316
原创 connector.ClientAbortException: java.io.IOException: Connection reset by peer
原因分析:同一只接口,当返回数据少的时候可以,返回数据多时报错,因此定位为后端返回数据过大,而nginx 的 配置文件中,默认的数据转发限制太小引发这种错误。页面接口报错控制台日志报错解决方法:修改nginx.conf文件,新增或修改如下4个参数重启nginx服务,问题解决......
2022-06-16 18:03:20
799
1
原创 Request Entity Too Large 上传文件错误代码413
问题:上传接口本地运行没问题,在服务器就报HTTP 413错误解答:修改配置文件,以nginx为例
2022-06-15 10:10:15
166
原创 nginx转发get请求多参数缺少参数问题
问题:nginx发现转发的get请求参数只有一个,&符号后面的第二个参数没了。解决:转发的链接参数&没加转义字符导致的
2022-06-08 19:42:42
1636
原创 请求接口报502错误
1.排查代码网关.2.排查nginx转发地址3.如果只是put或者delete请求报错,那么排查nginx配置是否支持4.如果出现问题3,并且支持,那么用IP地址调用put请求,不用用域名调用,看是否可行5.如果IP可行,域名不行,那么就是域名封装IP的时候不支持put和delete请求...
2022-06-08 17:35:42
8988
原创 好用的IDEA插件
前言:整理下我使用过的一些插件,本博客会不定时更新增加.1.IDEA插件----Free Mybatis plugin作用:通过XML写SQL的推荐安装,可以检查你返回值参数有没有问题,还可以实现dao接口和XML实现的跳转2.IDEA插件----Mybatis Log Plugin–超级实用,记得日志开启debug模式才可以生效效果是直接把参数嵌入SQL里面,...
2022-05-16 10:57:53
469
原创 2020.2.2版idea的file mask 为空解决办法
方式一:找IDEA的find.xml文件位置(以2020为例):C:\Users\Administrator\AppData\Roaming\JetBrains\IntelliJIdea2020.3\options\find.xml修改<application> <component name="FindSettings"> <option name="customScope" value="All Places" /> <option na
2022-05-13 11:09:18
1656
原创 error processing condition on org.autoconfigure.transaction.TransactionAutoConfiguration$Transaction
Jar包损坏,类没找到,可以尝试删除仓库,新建个仓库,让代码自己重新下载JAR包来解决
2022-05-11 11:31:29
725
原创 Springboot过滤器和拦截器实现
1.过滤器首先先写一个过滤器Filter,不使用注解package com.liuhaiyang.springboot.filter2; import javax.servlet.*;import javax.servlet.annotation.WebFilter;import java.io.IOException; //过滤器public class MyFilter implements Filter { @Override public void doFilter
2022-04-28 11:12:26
672
1
原创 ArraryList是怎样进行扩容的
概述:arrarList默认大小是10,当集合个数大于容量的时候,就会以1.5倍容量去进行扩容,如果还不够大就在扩容后的1.5倍再扩容。扩容后要对原来的集合进行cope到新的集合中。(在add()方法中调用确保内部容量方法,传入参数当前元素个数加一,当它大于实际数组大小的时候就调用grow()方法进行扩容。扩容是右移一位,进行扩容1.5倍,不够再进行扩容,通过copeof()方法进行数组的复制。)详细:为了说明说明这个问题,我们直接来看ArrayList的源码。首先看ArrayList中的add方
2022-04-06 14:22:44
1043
XMLTools插件
2020-12-03
可在服务器上运行的多线程脚本架子.zip
2020-08-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人