- 博客(36)
- 收藏
- 关注
原创 Springboot高版本适配人大金仓
这个依赖在3.2.4的JPA依赖中,版本是6.4.4.Final。但是方法的参数都对应不上,寻找后找到这个方法在5.6.15.Final版本中存在,后续又引入了5.6.15.Final版本的hibernate-core的依赖,但是又导致JPA报错。项目使用的3.2.4的springboot,在接入kingbase8-8.6.0.jar和hibernate-4.dialect.jar两个jar包后,运行报错。近期接了个需求要适配人大金仓,在网上找到的基本都是2.3左右版本的springboot适配。
2025-03-26 23:00:00
465
原创 SpringBoot+JPA适配人大金仓
编写相关实体类:使用JPA或者mybatisplus都会自动创建相关表。找到Kingbase8的驱动jar包,和Hibernate。jar包可以先放在项目目录下 后续可以上传到mvn仓库。我用的是nacos管理服务的 所以直接在配置文件中加了。加完配置后要修改hibernate中的声明。
2025-03-25 23:00:00
528
原创 分布式理解
如何理解分布式狭义的分布是指,指多台PC在地理位置上在不同的地方。分布式系统*统:**多个能独立运行的计算机(称为结点)组成。各个结点利用进行信息传递,从而实现共同的“目标或者任务”。运行在分布式系统上的计算机程序。:利用分布式系统解决来计算问题。在分布式计算里,一个问题被细化成多个任务,每个任务可以被一个或者多个计算机来完成。共同点都是大任务划分为小任务。不同点: 分布式计算:基于多台PC,每台PC完成同一任务中的不同部分。
2025-01-17 23:45:00
3956
原创 Linux基础学习(1)
购买云服务器购买阿里云服务器获取服务器的ip地址,重置服务器密码,就可以远程登陆获取公网IP地址修改自己的登陆密码关于安全组说明(自己需要开放什么端口自己配置即可)下载 xShell 远程连接工具,还需要 Xftp文件上传。
2024-12-18 23:45:00
774
原创 Kafka实现监听多个topic
遇到两个不同的topic但是要相同的处理逻辑,记录下使用@KafkaListener来监听多个topic。kafka相关配置就不写了 直接写结论。
2024-12-17 23:45:00
650
原创 Kafka学习
kafka是一种消息队列,主要用来大量数据状态下的消息队列,一般用来做日志的处理,既然是效力队列,那么kafka也就拥有消息队列的相应的特性了。
2024-12-13 23:45:00
1257
1
原创 生成订单30分钟未支付,则自动取消实现(附代码
00000001编号的订单要删除啦。该方案使用redis的Keyspace Notifications,中文翻译就是键空间机制,就是利用该机制可以在key失效之后,提供一个回调,实际上是redis会给客户端发送一个消息。该方案是利用JDK自带的DelayQueue来实现,这是一个无界阻塞队列,该队列只有在延迟期满的时候才能从中获取元素,放入DelayQueue中的对象,是必须实现Delayed接口的。take():获取并移除队列的超时元素,如果没有则wait当前线程,直到有元素满足超时条件,返回结果。
2024-12-11 23:45:00
1074
原创 雪花算法详解
代表的是这个服务最多可以部署在2^10 台机器上,但是10bit中5个bit代表机房,5个bit代表机器ID。12bit可以代表的最大正整数为2^12^-1=4095,也就是可以用12个bit代表的数字区分同一毫秒内的4096个不同的ID。在这64bit中,其中1个bit是不用的,然后用其中的41bit作为毫秒数,用10bit作为工作机器ID,12bit作为序列号。第五部分12个bit:表示的序号,就是某个机房某台机器上这一毫秒同时生成的id的序列号,0000 00000000。1bit不用是为什么。
2024-12-10 23:45:00
423
原创 布隆过滤器
先理解一下缓存穿透,当用户进行了一次错误的查询,此时并不存在redis,然后请求到数据库进行查找,但是因为查询条件的错误,数据库也并不存在,也不会在redis中写值,最终返回给用户一个空值。当出现大量的这种错误查询,则会给数据库增加压力,造成缓存穿透,如图:此时相当于redis不存在,被击穿了,这时可以在redis缓存一个空字符串或者特殊字符串,比如$,在下次redis中查询时,如果取到的值为$,则判断出这个查询的值并不存在,就不会再往数据库进行查询。
2024-12-06 23:45:00
343
原创 POI和easyExcel详解
03版本07版本区别对象的区别 以及文件后缀批量数据导入大文件写HSSF缺点:最多处理65536行,否则会抛出异常优点:过程中写入缓存,不操作磁盘,最后一次性写入磁盘,速度快大文件写XSSF缺点:写数据时速度非常慢,非常消耗内存,也会发生内存溢出,如100万条优点:可以写较大的数据量,如20万条大文件写SXSSF优点:可以写非常大的数据量,如果100万条甚至更多条,写数据速度快,占用更少内存注意过程中会产生临时文件,需要清理临时文件。
2024-12-04 10:28:54
648
原创 JVM堆栈,类加载过程
JAVA在程序运行时,在内存中划分5片空间进行数据的存储。分别是:1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。基本数据类型、局部变量都是存放在栈内存中的,用完就消失。new创建的实例化对象及数组,是存放在堆内存中的,用完之后靠垃圾回收机制不定期自动消除。示例main()int x=1;show ()int x=2主函数main()中定义变量int x=1,show()函数中定义变量int x=1。最后show()函数执行完毕。
2024-12-02 23:45:00
1215
原创 LocalDate详解
java.util.Date同时包含日期和时间,而java.sql.Date仅包含日期,将其纳入java.sql包不合理,另外这两个类都有相同的名字,这本身就是一个非常糟糕的设计,对于时间、时间戳、格式化以及解析,并没有一些明确定义的类。关注点分离:新的API将人可读的日期时间和机器时间明确分离,它为日期(Date)、时间(Time)、日期时间(DateTime)、时间戳(unix timestamp)以及时区定义了不同的类。//获取带有时区的时间。//获取当前具体时间。
2024-12-02 23:45:00
751
原创 parallelStream并行流使用踩坑,集合安全
后续在调试过程中发现,resultList中的数据量会随机少一两个数据,比如codeList中数据为1,2,3,4,5. 经过过滤后本应添加到resultList中的数据为1,2,3,4. 但是发现只加进来了1,2,3或者是1,2,4 会有数据确实的情况,本来以为是过滤条件的问题,排查后发现过滤条件没有问题,开始怀疑是并行流的问题。在添加数据时,他会先复制原来的数组然后在新的数组上面进行添加,最后再将新数组覆盖到旧的上面。如果在操作过程中切换了线程到读,此时的旧数组并未被覆盖,读取到的还是原来的数组。
2024-11-29 17:49:23
3149
原创 Java文件
mkdir() mkdirs()区别当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件如果D:/test 目录下没有 1.txt文件,则创建该文件;如果没有test目录,直接抛出异常,如果1.txt已经存在,那么文件创建失败。可以得知,createNewFile() 方法,根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败。
2024-11-29 16:50:01
188
原创 JAVA基础,反射
Java栈的区域很小,特点是存取的速度快,先进后出存储块的 原因:栈内存,通过‘栈指针’来创建空间和释放空间指针向下移动会创建新的内存,向上移动会释放这些内存但是这样必须明确移动的大小和范围,明确大小和范围是为了方便指针移动,这是一个对于数据存储的限制,存取的数据大小是固定的,影响了程序的灵活性,所以把更大部分的数据存储到了堆内存中存储的是:基本数据类型的数据以及引用数据类型的引用例如:int a = 10;10存储在栈内存中,第二局代码创建的对象的引用p存储在栈内存中。
2024-11-29 16:48:20
873
原创 JUC并发编程详解
进程:一个程序,QQ.exe Music.exe程序的集合一个进程可包含多个线程,至少包含一个Java默认有两个线程,main,GC线程:开了一个进程Typora,写字,自动保存(线程负责)对于java而言:Thread,Runable ,CallableJava不能并发,并行并发(多个线程操作同一个资源)并行(多个人一同行走)CPU多核,多个线程可同时执行并发编程的本质:充分利用CPU资源线程状态wait(),sleep()区别来自不同的类 wait=>object。
2024-11-28 10:12:59
839
原创 Java Stream流操作
在Java8以前,对集合的操作需要写出处理的过程,如在集合中筛选出满足条件的数据,需要一 一遍历集合中的每个元素,再把每个元素逐一判断是否满足条件,最后将满足条件的元素保存返回。而Stream 对集合筛选的操作提供了一种更为便捷的操作,只需将实现函数接口的筛选条件作为参数传递进来,Stream会自行操作并将合适的元素同样以stream 的方式返回,最后进行接收即可。将一种类型的值映射为另一种类型的值,可以将Stream中的每个值都映射为一个新的值,最终转换成一个新的Stream流。filter 中间操作。
2024-11-26 22:00:00
860
原创 @Async注解详解
配置好后,@Async会默认从线程池获取线程,当然也可以显示的指定@Async("asyncTaskExecutor")发现有返回值的情况下,虽然异步业务逻辑是由新线程执行,但如果在主线程操作返回值对象,主线程会等待,还是顺序执行。在启动类开启启用异步调用,同时注入ApplicationRunner对象在启动类进行调用测试。jdk1.8之后可以使用lambda表达式。实现类TestServiceImpl。有返回值,但主线程不需要用到返回值。有返回值,且主线程需要用到返回值。业务类TestService。
2024-11-19 09:13:58
213
原创 IO流学习大全
java.io.file类是专门对文件进行操作的类,只能对文件本身进行操作,不能对文件内容进行操作。(File跟流无关、File类不能对文件进行读和写)java.io.file类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。(类似D:\文件目录1与D:\文件目录1\文件.txt,前者是文件夹,后者是文件。File就是操作这两者的类)java.util.Properties继承于Hashtable,来表示一个持久的属性集,使用键值结构存储数据,每个键及其对应值都是一个字符串。
2024-11-18 10:57:14
763
原创 SSRF漏洞修复
SSRF(Server-Side Request Forgery:服务器端请求伪造)是一种有攻击者构造形成由服务器端发起请求的一个安全漏洞。攻击者可以利用该漏洞服务器端应用程序向攻击者选择的任意域发出HTTP请求。简单来说两个地址A,B,两个网址都在同一个服务器下,用户只有访问A的权限,通过服务器伪造命令,利用A的权限登录B。
2024-11-15 16:58:31
623
原创 网络结构,子网掩码,局域网
所以,总线结构网络中工作站节点的个数是有限制的,如果工作站节点的个数超出总线负载能量,就需要延长总线的长度,并加入相当数量的附加转接部件,使总线负载达到容量要求。局部地区形成的一个网络区域,其特点就是分布地区范围有限,可大可小,局域网自身仙骨笛其他网络传输速度更快,性能更稳定,框架简易,并且是封闭性,局域网自身的组成大体有计算机设备,网络连接设备,网络传输介质三大部分构成,其中计算机设备又包括服务器和工作站,网络连接设备则包含了网卡,集线器,交换机,网络传输介质简单来说就是网线。的设备连接不同的计算机。
2024-11-15 11:23:25
859
原创 Docker介绍,安装部署,常用命令
容器之间可以有一个数据共享技术,Docker容器中产生的数据,同步到本地这就是卷技术,目录的挂载,将我们容器内的目录,挂载到Linux上面总结:容器的持久化和同步操作,容器间也可以数据共享查看所有的docker网络网络模式bridge:桥接 docker(默认,自己创建也使用这个)none:不配置网络host:和宿主机共享网络container:容器网络联通(用的少,局限大)测试#我们直接启动的命令,--net bridge 而这个就是我们的docekr0# 我们自定义一个网络。
2024-11-13 14:22:41
1503
原创 Kafka实现监听多个topic
遇到两个不同的topic但是要相同的处理逻辑,记录下使用@KafkaListener来监听多个topic。kafka相关配置就不写了 直接写结论。
2024-11-13 10:46:27
478
原创 es存储集合
es直接将整个集合转成了字符串然后再按逗号分隔进行存储,但是在查询时发现查询hqh1同样也能查出来数据,反而查询["hqh1"查询不出来。text:存储数据时候,会自动分词,并生成索引(这是很智能的,但在有些字段里面是没用的,所以对于有些字段使用text则浪费了空间),没有长度限制。因为用户可能会很多,又不想去做多个字段存储就使用了text类型来存储。es本身并没有提供集合类型来进行存储,只能使用keyword和text进行存储。text中会被存储为张三,李四,在查询时可以根据张三或者李四查询到这条数据。
2024-11-12 15:59:42
527
原创 es存储文件内容数据并根据内容检索
后续在查询时发现 设置确实成功了,我是用的content存储的文件内容。但是发现其他字段也同样被分词了,因为文档还需要鉴权,要根据用户名进行查询(我也不清楚为什么没有个用户id),分词就导致 有两个人 一个张三,一个张三四,我在查张三时会导致张三四也被查出来了,实际他并没有这个权限,后续继续修改,只设置content字段进行分词。最近遇到个功能 要求使用es存储用户上传的文档,对文档进行解析后将内容等信息存储到es中,要可以根据文件内容查询到这个文件,查询后使用ik分词器来进行处理。
2024-11-12 11:54:07
265
原创 left join中on 和where 的差别
今天在使用left join 时,用on进行过滤来筛选SELECT t.`measure_id`, t.link_name,GROUP_CONCAT(t.range_time)SELECT t.`measure_id`, t.link_name,GROUP_CONCAT(t.range_time) range_time,GROUP_CONCAT(a.`alarm_score`) alarm_score,GROUP_CONCAT(a.`full_threshold`) full_threshold
2021-10-18 18:03:43
205
原创 认识group_concat
今天实现一个需求,要将同一个对象的某一个属性给合并显示,原本考虑的还是通过查询返回list集合,然后再进行拼接,被组长看到了,让我去看一看group_concat函数,才了解到它。举个例子来看:这样的一张表要求将link_name 相同的range_time字段进行合并sql语句SELECT t.`measure_id`, t.link_name,GROUP_CONCAT(t.range_time) range_time FROM tb_assessment_criteria
2021-10-18 17:49:04
618
原创 MySQL 中not in 查询为空
MySQL not in踩坑今天想用not in进行嵌套查询时,从逻辑上本应返回数据的结果却没有返回任何数据,查阅资料后找到原因。not in中 不能包含null值,如果包含null值 则直接返回空结果集上代码:<select id="lastId" parameterType="java.lang.String" resultType="cec.ems.module.entity.AlarmRecord"> select id from tb_area as a wh.
2021-08-31 15:51:44
1670
1
原创 QueryWrapper中的in和 sql中的find_in_set
今天用到QueryWrapper中的in方法,之前在用sql进行查询时用的一直是find_in_set函数,来例子List<String> resultList = new ArrayList<>(); for (int i = 0; i < alarmRecordMapper.lastId(map.getData().get("positionId")).size(); i++) { resultList.add(alarmRec...
2021-08-30 15:33:11
6149
1
原创 跨域问题解决
当一个请求url的协议,域名,端口三者之间任意一个与当前页面url不同即为跨域请求页面url 当前页面url 是否跨域 原因 http://www.test.com/ http://www.test.com/index.html 否 同源(协议、域名、端口号相同) http://www.test.com/ https://www.test.com/index.html 跨域 协议不同(http/https) http://www.test
2021-06-30 17:24:54
1441
java获取request中的请求参数
2024-11-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人