自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(161)
  • 收藏
  • 关注

原创 oracel数据库中如果一个表在插入数据时也另外一个线程对这个表进行查询,会影响查询的效率吗

在进行数据修改操作(包括插入)时,Oracle会自动使用锁来确保数据的一致性。尽管插入操作通常只锁定新插入的行,但如果并发量很高,仍然可能会导致等待和延迟。总的来说,虽然插入操作有可能对查询效率产生一定影响,但在合理的设计和配置下,这种影响是可以控制的。然而,如果查询操作复杂或者涉及大量数据,则可能会受到并发插入的影响。这可能会影响索引的性能,尤其是对于B树索引来说,频繁的插入可能会导致索引分裂和合并操作,进而影响索引的效率。如果系统资源不足,那么高并发的插入操作可能会消耗大量资源,从而影响查询性能。

2024-09-11 11:28:52 297

原创 oracel数据库中如果一个表在插入数据会影响另外一个表的查询?

比如,如果你在一个主表中插入一条记录,并且这条记录被用作从表中的外键,在某些查询中,从表的数据就会因为主表的新记录而发生变化。:如果你有一个基于一个或多个表的物化视图,并且物化视图设置了刷新策略,那么对基础表的插入操作会导致物化视图刷新,从而影响到查询该物化视图的结果。:如果表是分区的,并且插入操作涉及到新的分区,那么查询该表的方式可能会有所改变,特别是如果查询使用了分区裁剪技术的话。索引和统计信息:大量的插入可能会改变表的统计信息,进而影响到优化器的选择,从而改变查询计划,影响查询性能。

2024-09-11 11:27:24 222

原创 Hutool导出 excel 时设置列宽及对齐方式

【代码】Hutool导出 excel 时设置列宽及对齐方式。

2024-08-09 18:46:47 264

原创 如何使一个自定义SQL即能在uat环境执行又能在生产环境执行?

上面语句的作用是创建(或者如果已存在则替换)一个同义词ecm_send_thai_edi_history,这个同义词指向JJ_ECM_UAT模式下的ecm_send_thai_edi_history表。这意味着,当你在查询或操作时使用ecm_send_thai_edi_history,实际上你是在操作JJ_ECM_UAT.ecm_send_thai_edi_history表。:如果表需要移动到另一个模式下,只需要更改同义词的定义,而不需要修改所有引用该表的应用程序代码。

2024-07-18 18:06:08 155

原创 idea启动不了 在idea.bat中加pause看报错信息报Caused by: java.lang.ClassNotFoundException: com.licel.b.Z@以及控制台乱码问题

这里找到 idea.vmoptions文件(我是用everything软件查找idea.vmoptions文件的,需要软件的可以找我 或者网上也可以找) 把里边加了 -Dfile.encoding=UTF-8 去掉,如果有类似于-javaagent:C:\Users\Public.jetbrains\jetbrains-agent-v3.2.0.de72.619s的也可以删掉,其他不要删。乱码问题就是将-Dfile.encoding=UTF-8放在配置文件中间,不要放入在尾部。保存后即可重启idea了。

2024-07-05 15:47:34 401

原创 java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal res

2.处理除不尽的情况:如果你知道结果可能会是无限循环小数,可以使用divide方法的另一个重载版本,该版本接受一个MathContext参数,允许你指定舍入模式和精度,甚至允许结果以循环形式表示(虽然在大多数实际应用中,更倾向于指定一个舍入模式)。这个错误信息表明在执行特定Java代码时遇到了ArithmeticException异常,具体原因是试图进行一个数学运算,该运算导致了非终止的小数(即无限循环小数)的产生,而且无法得到一个精确的十进制结果来进行表示。我的代码判断是这样的。

2024-06-27 16:59:09 152

原创 java模板方法模式的实现及其扩展

模板方法模式将一些复杂流程的实现步骤封装在一系列基本方法中,在抽象父类中提供一个称为模板方法的方法的定义这些基本方法的执行次序,并且可以通过其子类来覆盖某些步骤,从而使得相同的算法框架可以有不同的执行结果。我们可以发现,在这个流程中取号、排队和对离开银行的操作对每个客户是一样的,可以在父类中实现,但是办理具体业务却因人而异,它可能是存款、取款或者转账等,可以延迟到子类中实现。在模板方法模式中将实现功能的每一步骤所对应的方法称为 基本方法,而将调用这些基本方法同时定义基本方法的执行次序的方法称为 模板方法。

2024-05-24 10:40:33 656

原创 区块链技术的应用场景和优势

通过将供应链中的每一步交易信息和物流信息存储在区块链上,可以实现供应链的实时监控和追溯,减少欺诈和假冒的风险。通过将供应链中的每一步交易信息和物流信息存储在区块链上,可以实现供应链的实时监控和追溯,减少欺诈和假冒的风险。通过将物联网设备的数据存储在区块链上,可以确保数据的真实性和完整性,并减少数据篡改和伪造的风险。通过将物联网设备的数据存储在区块链上,可以确保数据的真实性和完整性,并减少数据篡改和伪造的风险。通过将选票存储在区块链上,可以确保选举的公平性和透明性,并防止选举结果的篡改和操纵。

2024-05-15 11:22:40 484

原创 java大量数据导出excel的几种优化方法

一、我们导出数据时,常常是将数据一次性全部加载到内存中来,进行数据处理和导出,这样很容易导致OOM,我们可以对大文件拆分成小文件进行保存,最后对所有临时文件进行打包导出或者对小文件进行merge。三、我们在查询一个表数据的时候,往往把表中的所有字段都查询出来了,有些表结构比较大的可能有100,200个字段,但是我们在实际导出excel的时候用的字段不超过10个,这样使用的内存将减少10倍左右,那我们就没有必要去查询出这么多字段,建立一个vo,查询出我们需要的字段,然后进行数据处理和导出。

2024-05-15 11:18:17 1346 1

原创 ORA-00932: inconsistent datatypes: expected - got CLOB的分析解决方案

二、你的表结构中存在大文本类型(NCLOB),但是你在查询的时候,使用的是string去查询,导致在查询的where的参数条件报错;最近在项目中遇到查询数据时报ORA-00932: inconsistent datatypes: expected - got CLOB错误,这个错误很明显是由于查询时类型的不匹配造成的。3.找到错误的字段,把NVARCHAR2(4000) 或NCLOB 类型修改为NVARCHAR2(2000)一、检查你的查询的实体的类型是否于数据库的保持一致,如果不一致,那么需要进行更改。

2024-05-13 23:49:46 1883

原创 批量生成大量附件(如:excel,txt,pdf)压缩包等文件时前端超时,采用mq+redis异步处理和多线程优化提升性能

2.这里是第一步的方法,用雪花算法创建出一个唯一的批次号,然后作为Redis的key,将下载的信息状态存入其中,将paramsDto插入mq调用的方法中,这个Redis大家可以spring的或者引入的Redis依赖,注入对象get()和set()就行。3.前端设置一个监听器触发器和监听处理器,去拿到这个第一步返回的批次号进行状态查询,这里的查询时到Redis中去查询,因为状态会存在Redis中,如果已经下载完成,会返回这个状态true,这个时候我们再去调用第三个接口,下载附件并压缩返回给浏览器。

2024-05-11 15:37:40 503

原创 Found interface org.apache.poi.util.POILogger, but class was expected问题处理

如果你是在升级项目依赖时遇到这个错误,可能需要查看 Apache POI 的更新日志,了解接口 org.apache.poi.util 是如何变化的,并根据更新日志进行相应的代码调整。确认项目依赖的 Apache POI 库的版本是否与编译时期间使用的版本一致。如果不一致,需要更新项目中的 Apache POI 依赖,使其与运行时环境中使用的库版本相匹配。在你提供的错误信息中,org.apache.poi.util 接口可能被修改了,导致与你的项目依赖的 Apache POI 库版本不匹配。

2024-04-19 16:21:27 1305

原创 【Oracle】ORA-00936: 缺失表达式

数据类型不匹配,若在日期的选择上,要求输入字符串型(varchar2),而实际输入的为日期型(date)等。若from前存在逗号,语法不规范会引起 ORA-00936: 缺失表达式。in 后面 拼接参数无数据会引起 ORA-00936: 缺失表达式。ORA-00936: 缺失表达式。

2024-03-13 15:09:37 1406

原创 IDEA在运行测试类的时候报错:Error running ‘test‘: Command line is too long. Shorten command line for test

这样再次运行测试类即可。

2024-03-13 10:51:27 1805

原创 使用java的Stream流进行Collectors.groupingBy分组后生成Map,对Map进行删除原集合是否会发生改变

方法对集合进行分组操作时,生成的新映射(Map)是基于原始集合(allItems)的数据结构和内容创建的。集合本身没有变化(集合内的引用没有改变),但通过这个引用指向的对象内容已经被修改,所以看起来就像是原始集合也发生了变化。的更改而改变,但如果修改了这些引用所指向的对象内容,则会看到原始集合中相应对象内容的变化。对象本身是可变对象,并且你在映射中的列表中直接修改了这些对象的属性,那么虽然。虽然新的映射中的列表(List)包含的是引用到原始。中的值(例如,修改了List的内容),这不会直接影响到原始集合。

2024-03-05 17:24:22 951

原创 MAT MemoryAnalyzer如何查看分析hprof日志文件

Retained Heap(保留堆):如果一个对象被释放掉,那会因为该对象的释放而减少引用进而被释放的所有的对象(包括被递归释放的)所占用的heap大小,即对象被垃圾回收器回收后能被GC从内存中移除的所有对象之和。由于最近生产遇到JVM问题,需要分析dump文件,如果对相关分析工具没有使用过的小伙伴来说可能懵圈,这里介绍一下MAT工具排查问题的使用方法;Shallow Heap(浅堆):表示对象本身占用内存的大小,也就是对象头加成员变量(不是成员变量的值)的总和。这里为我们生成了一份漏洞疑点报告;

2024-03-04 15:53:24 1612

原创 idea插件开发的时候找不到com.intellij.psi.PsiClass

方法二:在 build.gradle 中的 intellij plugins属性添加 ‘com.intellij.java’方法一:在 build.gradle 中的 intellij plugins属性添加 ‘java’方法三:如果是用的本地路径。

2024-03-04 14:47:39 648

原创 雪花算法生成ID、UUID生成ID和MySql自增ID优缺点分析

综上所述,UUID适用于分布式系统和需要保密的场景,雪花ID适用于分布式系统和高并发环境,MySQL自增ID适用于单机系统和高效查询的场景。根据具体的业务需求和系统架构,选择合适的主键类型。通过本文的介绍和对比,希望读者能够更好地理解在MySQL中不推荐使用UUID或者雪花ID作为主键的原因,并能够根据实际情况做出明智的选择。在MySQL中,使用自增整数作为主键是一种常见的做法,因为它具有较小的存储空间、高效的索引和自动增长的特性。然而,具体选择何种主键类型还是要根据具体的业务需求和数据特点来决定。

2024-01-17 11:33:14 2924 1

原创 BigDecimal中使用ROUND_HALF_UP进行四舍五入

一般情况下,对于那些不需要准确计算精度的数字我们可以直接使用 Float 或 Double 处理,但是 Double.valueOf(String) 和Float.valueOf(String) 会丢失精度。如果我们需要精确计算的结果,则必须使用BigDecimal 类来操作。【注】使用 BigDecimal 进行计算时,我们不能再使用算术运算符(+、-、*、/)进行算数运算,而是使用 BigDecimal 类提供的 add、subtract、multiply、divide 等方法来进行算数运算。

2024-01-16 09:42:49 3639 1

原创 数据传输过程中数据不时出现丢失的情况

例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大)

2024-01-06 15:19:25 427

原创 RPC基础知识总结

Apache Thrift 是 Facebook 开源的跨语言的 RPC 通信框架,目前已经捐献给 Apache 基金会管理,由于其跨语言特性和出色的性能,在很多互联网公司得到应用,有能力的公司甚至会基于 thrift 研发一套分布式服务框架,增加诸如服务注册、服务发现等功能。我们这里说的 RPC 框架指的是可以让客户端直接调用服务端方法,就像调用本地方法一样简单的框架,比如我下面介绍的 Dubbo、Motan、gRPC 这些。Dubbo 算的是比较优秀的国产开源项目了,它的源码也是非常值得学习和阅读的!

2024-01-06 15:09:52 980

原创 在oracle中如何删除表中数据

想删除表当然是 drop了、想保留表而将所有数据删除,如果和事务无关,用truncate即可。2.truncate和delete只删除数据不删除表的结构,drop语句将删除表的结构被依赖的约束、触发器、索引;4.truncate、drop 是数据库定义语言(DDL),操作立即生效,原数据不放到rollback segment 中,不能回滚,操作不触发 trigger。1.用truncate删除表数据,只是删除表中的数据,表结构不会被删除!1.用delete删除表数据,只是删除表中的数据,表结构不会被删除。

2024-01-06 14:37:29 1702

原创 Nacos实现原理详解

Nacos Server:Nacos服务提供者,里面包含的Open API是功能访问入口,Conig Service、Naming Service 是Nacos提供的配置服务、命名服务模块。Consitency Protocol是一致性协议,用来实现Nacos集群节点的数据同步,这里使用的是Raft算法(Etcd、Redis哨兵选举)Name Server:通过VIP(Virtual IP)或DNS的方式实现Nacos高可用集群的服务路由。服务实例在启动时注册到服务注册表,并在关闭时注销。

2023-12-27 23:28:53 374

原创 Oracle数据updater如何回滚

1.查询update语句执行的时间节点;3.回滚表数据到目标节点。

2023-12-27 23:14:22 1093

原创 windows和Linux如何做强制域名解析

,想必大多数人都知道它是百度的域名,但并不记得它对应的IP地址吧,所以由这个例子我们可以明白域名解析的一大优点:“便于记忆”,因为便于记忆,我们用户可以高效的访问想要访问的网站,也让我们使用起来更加合乎我们的思维模式。我们再考虑到一些网站的IP地址经常会有变动,就算我们记住了,在下一次我们访问时有可能已经找不到对应的网站了,而通过域名解析即可以准确的解析出对应IP地址,使得我们访问起来更加方便与准确。3.保存后,再次复制到C:\Windows\System32\drivers\etc。

2023-12-26 11:39:19 439

原创 进制转换,写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。 数据范围:保证结果在 1≤n≤2的31次方-1

写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。数据范围:保证结果在 1≤n≤2的31次方-1。

2023-12-24 23:06:12 434

原创 明明的随机数 明明生成了 N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。 数据范围: 1≤n≤100

明明生成了N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。数据范围: 1≤n≤1000 ,输入的数字大小满足 1≤val≤500。

2023-12-24 23:03:29 185

原创 1. 汽水瓶 某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(但是必须要归还)。 小张手上有n个空汽水瓶,她想知道自己最多可以喝到多少瓶汽水。 数据范围:输入的正整数满足 1 ≤ �

某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(但是必须要归还)。注意:本题存在多组输入。输入的 0 表示输入结束,并不用输出结果。小张手上有n个空汽水瓶,她想知道自己最多可以喝到多少瓶汽水。数据范围:输入的正整数满足 1≤n≤100。

2023-12-24 23:00:33 378

原创 为什么不同服务器ping同一个域名得到的ip都不一样

一些DNS服务商(如DNSPOD)提供了智能DNS解析服务,可以根据用户的地理位置或网络条件返回最优的服务器IP地址。如果该域名使用了CDN服务,当用户请求到达时,CDN会根据网络状况和服务器负载情况将请求转发到最近或者最适合的边缘节点,这些边缘节点通常具有不同的IP地址。如果该域名指向的是云服务上的实例,这些实例的公网IP地址可能不是固定的,而是动态分配的。不同的ISP可能有不同的DNS解析策略,例如他们可能会对某些域名进行本地缓存或者重定向,这可能导致从不同ISP的服务器上看到不同的IP地址。

2023-12-23 18:10:53 1639

原创 修改 jar 包中的源码方式

在我们开发的过程中,我们有时候想要修改jar中的代码,方便我们调试或或者作为生产代码打包上线,但是在IDEA中,jar包中的文件都是read-only(只读模式)。6.如果不想在工程中显示创建一个同名类,想要直接修改 jar 包中的代码的话,可以对新修改的同名类进行编译生成 .class 文件。4.debug项目,在该类中打上断点,可以看到代码执行时会进入这个新的类中,说明走的是改后的代码。2.找到jar中你想要修改的类,在自己的工程目录下,创建一个同该类一样的包(package)。

2023-11-15 13:56:37 2630

原创 遍历List集合和Map进行修改和删除报java.util.ConcurrentModificationException错误详解

在这里,迭代ArrayList的Iterator中有一个变量expectedModCount,该变量会初始化和modCount相等,但如果接下来对集合进行修改,modCount改变,就会造成expectedModCount!CopyOnWriteArrayList也是一个线程安全的ArrayList,其实现原理在于,每次add或remove等所有的操作都是重新创建一个新的数组,再把引用指向新的数组。方法一:迭代前加锁,解决了多线程问题,但还是不能进行迭代add、clear等操作。

2023-11-09 15:00:09 1031

原创 ORA-00257: Archiver error. Connect AS SYSDBA only until resolved错误解决

5、退出数据库命令后,进入/orc/app/oracle/fast_recovery_area/orcl/ORCL/archivelog文件夹下保留最近日期的一个文件夹,删除其他的文件夹。4、关闭归档日志:alter database noarchivelog;5、修改数据库模式:alter database archivelog;6、查看归档日志是否关闭:archive log list;7、查看归档日志是否开启:archive log list;3、关闭数据库:shutdown immediate;

2023-11-08 17:01:34 6455

原创 writer.flush(bos,true);与writer.flush(bos);的区别

方法会将当前行的数据写入缓冲区中,并立即将数据写入输出流中。这样可以确保数据的完整性,但是可能会增加写入输出流的次数,降低写入效率。方法只会将当前行的数据写入缓冲区中,而不会立即将数据写入输出流中。这样可以减少写入输出流的次数,提高写入效率。如果您需要更好的数据完整性,可以使用。因此,如果您需要更高的写入效率,可以使用。对象的流,但是它们有一个不同的参数。

2023-09-18 16:25:52 369

原创 帆软报表执行sql报SQL command not properly ended

3.是否在SQL的最后有分号存在,如果有需要去掉,这点是比较坑的,因为SQL最后加分号在oracle数据库中是能够执行的,但是在帆软这边是不能正常执行的。1.是否在SQL在有逗号忘记加了。

2023-09-07 09:48:15 1289

原创 RabbitMQ启动服务报错1067解决方案

4. 如上述无效 ,请尝试 rabbitmq-service remove命令移除RabbitMQ服务,然后rabbitmq-service install安装服务后,再次使用rabbitmq-service start启动服务。正确下载安装,且配置完成环境变量,可在命令行键入erl,若显示erlang版本则说明环境变量配置成功。2. 检查erlang和rabbitmq版本是否匹配,不匹配去下载相应版本。此电脑 -> 属性 -> 重命名这台电脑 -> 重启。3. 将安装目录中的空格去除,中文换成英文。

2023-08-16 11:06:49 1464

原创 Your idea evaluation has expired. Your session will be limited to 30 minutes.Ideal打开出现这种提示

2.Help — — > Register,选择 License server方式,地址填入:http://jetbrains-license-server;4.再把刚刚填到框里的 http://jetbrains-license-server 替换成 http://fls.jetbrains-agent.com;3.点击 Test Connection 和 Activate,中途好像说没有找到还是什么的,我没有理会就直接下步操作了;我使用的IDEA 是2020.1.1的版本,之前也是用了破解包。

2023-07-11 09:23:01 4695 5

原创 springboot中对mybatis plus的简单使用

(简称 MP)是一个的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

2023-07-11 09:12:23 202

原创 模板方法案例

模板方法模式的核心思想是将算法框架定义在父类中,具体步骤的实现延迟到子类中。通过这种方式,模板方法模式提供了一种灵活的方式来定义算法的骨架,并允许子类根据自身需求进行定制化的实现。其中,具体步骤由子类实现的抽象方法提供。模板方法模式是一种行为设计模式,用于定义一个算法的框架,同时允许子类在不改变算法结构的情况下重新定义某些步骤。模板类定义了一个算法的框架,其中包含了一组方法和流程的步骤,其中某些步骤可能是抽象的(待子类实现)。子类继承模板类,并实现其中的抽象方法,以提供算法框架中具体的步骤实现。

2023-07-04 17:18:43 258

原创 Spring中的策略模式

总结起来,策略模式在Spring中的应用使得我们可以灵活地切换和组合不同的行为,而不需要修改使用这些行为的类。在使用策略的类中,通过调用注入的策略类的方法,来实现具体的算法逻辑。这样,在运行时可以动态地替换策略类,从而实现不同的行为。在Spring的配置文件中,使用依赖注入(DI)的方式将策略类注入到需要使用策略的类中。方法来进行支付操作。当需要替换策略时,可以通过配置文件中的DI来注入不同的策略类。创建多个实现策略接口的类,每个类实现了策略接口中的方法,以提供不同的实现。在使用策略的地方,通过调用。

2023-07-04 17:12:25 1255

原创 boolean match = casNo.matches(“\\d+-\\d+-\\d+$“);代码存在安全漏洞,应该如何修改

上述修改中,使用Pattern类的compile()方法编译正则表达式,并通过matcher()方法创建Matcher对象,然后调用matches()方法对输入的字符串进行验证。如果你可能在输入中接受任意符号,则此处 casNo.matches(“\d±\d±\d+$”) 存在安全漏洞,因为这个正则表达式只允许短横线,但是攻击者可以尝试其他符号,这可能导致正则表达式的绕过或解析错误。为此,我们建议使用Java自带的Pattern类对正则表达式进行编译并在运行时执行错误处理,以提高安全性。

2023-05-29 13:13:19 167

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除