- 博客(112)
- 收藏
- 关注
原创 List中的toArray方法
toArray(T[] a):首先传输指定类型T的数组,如果传输的数组长度小于list长度,直接返回T类型的数组,传入的a数组会被弃用,返回数组是经过空间压缩的;以ArrayList为例,toArray方法有有参数和无参数两种形式,无参比较简单,直接list.toArray()可以得到一个新数组,但是类型是Object[],大部分时候我们不需要这种类型的数组,而是需要和List的范型对应,所以toArray(T[] a)会是更好的选择。ArrayList toArray方法源码。
2023-04-26 15:43:33
863
1
原创 ORACLE数据库SQL执行语句分析
主要用到三张表 DBA_HIST_SQLSTAT,DBA_HIST_SNAPSHOT,DBA_HIST_SQLTEXT。如上所示,问题sql语句的相关信息都在DBA_HIST_SQLSTAT这张表中了,具体用到了那些还需要再调整。此语句可以用来查询对应sql语句的id,然后根据id可以查到其他信息。
2023-04-19 16:07:43
531
原创 配置文件中敏感信息的简单加密(Springboot)
加载好插件后可以看到有很多可用的命令,最简单的加密命令如下所示,意思是把字符串theValueYouWantToEncrypt加密,密钥是the password,执行这个命令结果会打印在输出流中;那解密就是decrypt-value,反着操作就行了。稍微复杂一点就是我想直接让它识别项目中我要加密的数据,那默认路径是src/main/resources/application.properties,我们要修改一下路径,然后还要用DEC(…)将需要加密的数据括起来,例如。我这里是用maven插件来调用。
2022-12-27 17:14:45
997
原创 JDBC如何破坏双亲委派机制
JDBC的注册会涉及到java spi机制,即Service Provideer Interface,主要应用于厂商自定义组件或插件中;简单说就是java来定义接口规则和方法,厂商实现具体逻辑,每家厂商根据自己产品实现的逻辑肯定不相同,但上层直接使用接口时感觉不到取别。就比如java.sql.Dirver。java spi的具体约定:厂商在自己被引用的jar包下的META-INF/services目录下创建一个以服务接口命名的文件,然后指向具体实现类。在装载的时候,ServiceLoader这个类就会扫描对
2022-12-27 15:26:18
1897
原创 使用JavaMailSender进行邮件发送
以前发送邮件可能大家需要使用javax下的mail包,自己创建session,mimemessage这种;其实spring帮我们集成了一下,让发邮件变的更简单、可靠。
2022-08-18 09:46:29
6671
1
原创 MybatisPlus中Enum的使用(MybatisEnumTypeHandler)及遇到的问题
下面是TypeHandlerRegistry部分代码,其中javaTypeClass会根据是否配置javaType进行变化,如果javaType=true,那会按照实体类或者xml对应字段的java类型获取,如果javaType=false,那这里有可能是Object或者null,对于MybatisEnumTypeHandler来说应该是Object(我调试的时候是这样)上面的第三步不用了,然后又分两种情况,BaseMapper方式和Mapper.xml方式,其实主要是看你的sql语句在哪。...
2022-08-02 14:27:58
7546
原创 Docker Compose 编排Nginx+Vue+Springboot项目实例
Docker Compose首先分别部署前后端项目,确定没问题之后使用compose统一管理Vue项目部署到nginx使用docker镜像打包前端项目npm run build #我是用的vue2版本,使用此命令打包,生成到dist文件夹下上传并编写配置文件接下来要把这个包上传到服务器,我用的是FileZilla,目录结构如下图所示路径是/usr/local/nginx/vue,这里放创建nginx镜像所需要的文件,dist就是打...
2022-04-06 19:05:20
1891
原创 Java分页查询报错 Every derived table must have its own alias
今天在项目中增加了一个简单的分页查询数据的接口,出现了Every derived table must have its own alias这个报错,看起来是个别名问题,但是sql很规范,该有的别名也都有,而且不加分页是能直接查询成功的,所以基本可以确定是分页插件的问题。仔细观察了sql查询的日志发现,这个ROWNUM和ROW_ID很奇怪,这两个是Oracle分页的时候用到的,mysql应该是使用limit来进行分页。由于是微服务项目,所以mybatisplus的分页配置在公共模块,果然是配
2022-03-17 16:11:02
3232
2
原创 Java 项目中的全局异常处理
全局处理我们可以采用Spring的ExceptionHandler,通过字面简单理解就是异常事件捕获,那实际上用起来也比较简单方便。我们开发程序异常处理是不可避免地,实际上java 对于运行时异常的打印信息已经足够详细,但是对于前后端分离或者代码规范的严格要求的项目,进行统一的异常封装是非常有必要的,这样前端可以直接通过状态码和错误消息获取到不同类型的异常,也可以不做处理直接展示。其实还是通过AOP的思想来进行异常捕获,这个我没有深入研究源码,所以没法展开来说。简单看下这个注解@T..
2022-03-10 17:42:07
2076
原创 Docker的常用命令(基础)更新中
帮助命令docker version #显示docker的版本信息docker info #显示docker的系统信息,包括镜像和容器的数量docker 命令 --help #帮助命令镜像命令docker images #查看本地主机的所有镜像#可选项-a #列出所有镜像-q #只显示镜像的iddocker search #搜索镜像#例如docker search centos #查找镜像库中的镜像资源(最好配置好国内镜像源再下载镜像)...
2022-03-09 17:27:09
676
原创 关于lombok的@AllArgsConstructor序列化时注意的问题
今天对实体类进行修改的时候发现的一个问题,我需要实体类作为返回参数,这个类上面有@AllArgsConstructor注解但是运行之后重新加载类,会报错com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.cicc.fx.vo.DealSummarySettleFeignRspVo` (no Creators, like default construct
2022-03-02 15:29:22
1152
原创 84452抽签Java版
import java.util.HashMap;import java.util.Map;import java.util.Random;public class Test { public static void main(String[] args) { Map<Integer, Map<Integer,String>> map = new HashMap(); Map<Integer,String> A = .
2022-02-04 20:23:54
598
原创 C# .NET应用使用IIS进行对外开放下载
一、创建测试应用创建什么类型的应用不重要,项目可以进行发布就行项目非常的简单,作为举例说明二、安装IIS服务在控制面版中找到程序,然后点击启用或关闭windows功能。要选中需要的条目,本次要开放url访问的功能,所以FTP可以不需要主要是要把.NET和ASP的都勾选上,然后点击确定就会安装需要的程序,安装好之后访问localhost会出现默认界面,说明成功了三、创建IIS服务上一步安装好了之后,就能看到这个应用了...
2022-01-25 18:21:39
1296
原创 Vue3.x 环境下el-input实现输入框右侧加icon或字符
最近帮朋友做点东西,写了个vue的项目。写表单的时候需要输入框显示单位,这个上网查了一下,<i slot>这种在3.x已经不能使用了,所以查阅了一下element官方文档,element当然也有相关更新。话不多说直接上图,如果想找详细使用方法直接看链接可以看到原先能直接用slot的地方,现在要使用template才行,由于在网上查了好久也都是过时的解决方案,所以写下这篇文章,希望能帮助到更多的人吧...
2021-11-23 19:24:27
4283
1
原创 Oracle 错误 java.sql.SQLRecoverableException: No more data to read from socket
周末的时候Java程序的连接池突然出问题,报错如下所示。java.sql.SQLRecoverableException: No more data to read from socket此问题不是特定的页面存在,而是所有连接数据库查询的功能均报错先确定一下排查的思路吧,1.周五的时候确实我们有新的功能上线,所以首先排查是否是新功能影响了连接的释放,结果确定不是。2.是否是因为工具类或者公用方法被修改导致数据库连接问题,结果确定没有修改。经过网上查找资料和其他渠道,得知此问题
2021-09-22 11:08:44
8425
原创 Tomcat,jetty,netty是什么?
平时工作中用Tomcat比较多,所以对这个比较熟悉,最近看了jetty和netty的一些资料,记录一下个人的看法。Tomcat:是一个重量级的Web服务器加Servlet容器,Web服务器是说它可以将网络IO通过NIO(不是之前的BIO了)的方式解析成HTTP请求(AJP好像也可以),然后交给实现了Servlet协议的Servlet容器去处理,最后到达应用的就是request和responsejetty:Tomcat能做到的事情,jetty一样能做到,它内部结构比Tomcat更简单,是一个轻量级的W
2021-05-22 18:53:37
2813
原创 Java 泛型机制详解(1)-简单泛型使用
一、为什么要使用泛型其实新技术的出现都是原有的技术不能够满足需求了,或者是原有技术有比较大的弊端,大家都用的不舒服,那泛型也是这样的。老生常谈的ArrayList 在没有泛型之前是这样的public class ArrayList { private Object[] elementData; public Object get(int i) { . . , } public void add(Object o) { . . . }}现在是这样的p...
2021-05-18 14:26:44
146
3
原创 java将byte数组转换为16进制字符串
import java.io.UnsupportedEncodingException;public class CoderTest { final protected static char[] hexArray = "0123456789ABCDEF".toCharArray(); public static void main(String[] args) { String name = "我是yiyuzz"; try { .
2021-04-28 18:06:31
580
原创 springboot+vue+nginx简单项目的开发和部署
工作不是很饱和的情况下,就有时间去研究一下技术上的东西,然后打算写一篇比较长的啰嗦的文章来记录一下一、准备工作首先要有一台云服务器(其他替代的能作为服务器的设备也行,最好是linux),然后我是提前配置好了java环境,OPENJDK或者ORACLEJDK都行,这两个的区别自行百度吧。二、后端编写新建一个springboot项目,然后可以用默认的起步依赖就行,我是多加了一个swagger的依赖 <dependency> <grou
2021-04-22 15:08:32
1108
原创 项目部署后自动清除浏览器缓存的办法
之前拜读《深入分析Java Web技术内幕》一书的时候曾经了解过HTTP 请求相关的知识,今天正好有业务的同事来问我前端Vue项目部署之后,浏览器缓存还存在,用户正确的操作了错误的页面导致程序出现问题。那我们不可能要求用户使用前要清除一下缓存,所以能否在程序中限制一下呢但是我的前端水平不允许我写博客,所以只能介绍下思路Cache-Control/Pragma这个 Http Header字段用于指定所有缓存机制在整个请求/响应链中必须服从的指令,如果知道该页面是否为缓存,不仅可以控制浏览器,还
2021-04-19 10:34:24
3664
原创 Java中InputStream转化为MultipartFile类型
由于工作需要,涉及到文件类型的转化,实际上MultipartFile有方法可以直接转化为InputStream,但是并没有办法可以从InputStream直接转化为MultipartFile。网上的资料大概看了下,有两种简单的方案CommonsMultipartFile和MockMultipartFile,不过对我来说都不适用,因为我不能添加依赖。我决定先看下MultipartFile怎么转化成InputStream。public class CommonsMultipartFile impl
2021-04-15 09:46:44
26350
5
原创 MYSQL中的GROUP_CONCAT函数
语法如上所示首先准备一个表CONCATENATE意思是连接,这里指的是字符串的连接,所以最终结果必定是字符类型,最大长度限制为1024(可以修改) ,如果参数中有NULL值,最终结果是NULL,GROUP代表此函数多用于含有GROUP BY 的查询语句,当然正常情况也可以使用,不过如果查询语句中没有GROUP BY 最好使用CONCAT()或者CONCAT_WS()函数DISTINCT不用多说就是去重,ORDER BY 是可以对连接的字符串进行排序SEPARATOR是设置分隔符,..
2021-02-04 14:45:38
312
原创 JAVA基础 equals()方法和HashCode()方法的关系
能看到这篇文章的帅哥美女们大概是疑惑一句话:为什么重写equals时必须重写hashCode方法?我研究这个问题也是研究了好久,虽然我是个新手,但是我觉得这句话本身就不对,下面我说说我自己的理解,如果有不对的地方还望指出。实现equals的五大原则就不谈了,相关资料有很多。直接上代码package entity;import java.util.Objects;public class Item { private String description; private
2021-01-14 15:50:46
99
原创 vue项目 npm install 报错 Building: D:\nodejs\node.exe D:\vueProject\music-client\node_modules\node-gyp\b
之前自己联系的一个小项目,在其他电脑上是可以正常安装依赖然后运行的,但是今天想把它放到新的电脑上编辑,install的时候出错了。错误信息如下:一开始分析错误,我认为是项目中node_modules中的node_sass没加载成功,结果重试多次,npm或者cnpm都不行。看了网上的一些解决办法,我明白应该是和我node的配置有关,上图可以看到node版本是15,路径在D盘(这个是安装node改了默认位置)然后查资料知道node_sass这个文件正常应该是在C:\Users\用户名\Ap...
2020-12-31 16:02:13
15226
4
转载 Vue安装教程
https://www.cnblogs.com/fron-tend/p/9755188.html参考大佬的安装,非常全面,记录一下
2020-12-11 11:34:48
137
原创 java学习笔记----异常处理机制
处理异常假设一个java程序在运行过程中出现了一个错误,这个错误可能是文件包含了错误信息,或者网络连接出现问题,也有可能是使用了无效的数组下标,或者是引用了一个没有被赋值的对象。如果由于出现错误导致某些操作没有完成,程序应该:返回到一种安全状态,并能够让用户执行其他的一些命令 允许用于保存所有操作的结果,并已妥善的方式处理程序异常处理的任务就是将控制权从从错误发生的地方转移到能够处理这种情况的错误处理器,针对不同的错误应该有不同的处理方式,所以要把错误和问题进行分类。异常分类在jav
2020-11-28 15:19:27
178
原创 java学习笔记-clone()方法相关知识
克隆的意义如果一个对象A是引用类型,那么A中保存的信息是这个对象的堆地址,在程序中,有可能会出现这样的情况:某时某刻,我需要两个状态相同的对象,但是在此后的执行过程中分别执行不同的程序逻辑,然后得到两个状态不相同的对象。如果这时使用 B = A来得到A,B两个对象,是不行的,因为这两个对象实际上在内存中是指向同一个地址,之后的逻辑也针对这一个地址中的对象进行操作。这时候就需要用到clone()方法。简单实现克隆clone()方法是Object类中的一个受保护的,native的方法,并且要抛出一个
2020-11-25 18:55:42
352
原创 Java反射机制-初步(学习笔记)
反射机制反射的定义能够分析类能力的程序称为反射(reflective),Java提供了一个反射库(reflection library)用来方便编写可以动态操作Java代码的程序反射能用来做什么(后面依次介绍)在运行时分析类的能力在运行时查看对象实现通用的数组操作代码利用Method对象一、CLASS对象反射中最基础也是的就是要了解Class对象,如何使用以及它的含义。Java运行时系统始终为所有的对象维护一个运行时的类型标识,这个标识跟踪着每个对象所属的类,虚拟机通
2020-11-03 16:28:16
527
原创 转行小记
很久没有更新CSDN了,打算转行了,最近一直在学习JAVA相关知识,以后会在这里更新JAVA相关的技术文章。写这篇文章也是督促自己学习和写博客吧,人生不易,继续努力!
2020-11-02 15:28:18
74
转载 ABAP 创建动态内表的三种方法(转)
第一种:如果我们需要的动态内表字段或者动态工作区和数据字典中的类型一致,可以直接使用CREATE DATA生成,当然也可以是自定义类型。比如要产生和数据表MARA结构一致的动态内表:DATA : DY_TABLE TYPE REF TO DATA, WA_LINE TYPE REF TO DATA.FIELD-SYMBOLS: <DYN_TABLE> TYPE STANDARD TABLE .CREATE DATA DY_TABLE TYPE TABLE OF MARA..
2020-07-31 14:15:14
1420
原创 ABAP BOM反查至成品
记录一下反查的代码,稍微改改就能用LOOPATgt_item."第一次反查CALLFUNCTION'CS_WHERE_USED_MAT'EXPORTINGdatub=sy-datumdatuv=sy-datummatnr=gt_item-matnrwerk...
2020-07-30 18:35:09
1117
原创 ABAP ALV标准功能导出本地文件EXCEL格式错误
最近碰到的这个问题,没法贴图,描述如下:ALV显示界面看着字段很正常,然后输出->本地文件 有些字段就会自动换行,输出->电子表格功能没有问题。经查证,在之前的操作导入数据到后台表时格式有问题,有换行符存在,导致本地文件导出时也有换行。需要注意的是 一定要用SE11查看有问题的行项目,点击明细才能看到换行符。输出->本地文件 和 输出->电子表格功能使用的数据源是不是不一样呢,...
2020-07-20 14:17:27
1777
原创 ABAP 获取IP地址和终端的方法
只是简单的一次记录*&&获取终端地址DATA:opcode_usr_attr(1)TYPExVALUE5,terminalTYPEusr41-terminal.CALL'ThUsrInfo'ID'OPCODE'FIELDopcode_usr_attrID'TERMINAL'FIELDterminal.*&&获取IP地址DATA:ipTYPEstring.CALLMETHODcl_gui...
2020-07-15 15:15:56
1082
转载 ABAP 快捷键相关(转)
目录引言 快捷键 更多编辑器工具 代码模板 变量名补全 结论 编程快捷键——极客风格 自动完成 ADT中的多彩高亮正文回到顶部引言 ABAP是一种和当代编程语言在许多方面有着相当不同的编程语言。ABAP的某些方面可能会让我们奇怪,为什么它会如此复杂?而它的某些方面又是那么杰出,给予了ABAP开发者们比其它任何语言更多的便利。 我发现有两样东西太cool了:朴实的IDE(ABAP Editor)以及 酷炫的调试器 尽管SAP的IDE不支持某些更加.
2020-07-15 09:31:08
561
原创 ABAP ASSIGN COMPONENT用法
语法ASSIGN COMPONENT <comp> OF STRUCTURE <s> TO <FS>.系统将字符 串 <s> 的组件 <comp> 分配给字段 符号 <FS>。 可以指定 <comp> 为文字或变 量。如果 <comp> 属于类型 C 或字段串( 象组件一样 没有内表) ,它指定组 件的名称。 如果 <comp> 有任何其它 基本数据类 型,将被转 化为类型 I(参见 类型转换),
2020-07-14 10:21:25
11546
原创 ABAP XML转化之ST语法总结
Simple Transformations简介ST语言是一种描述ABAP 和XML之间格式转换的编程语言,用于ABAP数据的序列化(ABAP->XML)和反序列化(XML->ABAP)。ST程序可以通过转换编辑器进行编辑(TCODE: STRANS),优点:ST程序很容易阅读;串行访问XML数据,因此即使数据量很大,也非常高效;ST程序同时描述序列化和反序列化,即用XML序列化的ABAP数据也可以用ST程序反序列化;仅限于基本和结构化ABAP数据以及内部表的转换。创建一个...
2020-06-19 10:20:42
2740
2
转载 ABAP 一些比较少用的表(转)
DEVACCESS :存放开发用户的开发KeyFM: DEVELOPER_KEY_CHECK,检查开发KeyADIRACCESS:存放更改源码的AccessKey FM:TADIR_ACCESS_KEY_CHECK,检查AccessKey是否正确DWINACTIV :存放没有激活的对象,可以按照用户等查询USR07 :最后一次失败的授权检查的对象/值E070 :更改 & 运输系统: 请求/任务的抬头E07T :更改...
2020-06-08 18:53:33
288
原创 ABAP 根据函数名称查找函数组
callfunction'FUNCTION_EXISTS'exportingfuncname=funcname "函数名称importinggroup=groupexceptionsothers=1.
2020-06-08 17:26:39
949
原创 ABAP 获取时间戳
结构TZONREF ABAP 时间标记的参考字段(去结构里看下哪个字段是需要的)DATA:lv_stringTYPETZONREF-TSTAMPS.",TZONREF-TSTAMPL".GETTIMESTAMPFIELDlv_string.
2020-05-13 09:46:14
2411
原创 ABAP 左下角显示程序执行进度
效果如下:代码如下:CALLFUNCTION'SAPGUI_PROGRESS_INDICATOR'EXPORTINGpercentage= lv_percentage "执行程序的百分比text=lv_text. "提示文本...
2020-05-11 17:22:49
804
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人