- 博客(51)
- 收藏
- 关注
原创 getResource的区别
class.getClassloader.getResource(),不加斜杠就是根目录,加斜杠读取为null。class.getResource(),不加斜杠是指当前目录,加斜杠是指根目录(class下)
2025-03-31 13:42:46
103
原创 数据库的char字段类型
(3). 字段的长度是否相近,如果某个字段其长度虽然比较长,但是其长度总是近似的,如一般在90个到100个字符之间,甚至是相同的长度。所以如果某些字段会涉及到文件排序或者基于磁盘的临时表时,分配VARCHAR的长度时仍然不能过于慷慨,需要评估实际需要的长度,然后设置一个合适的长度,不能随意设置长度。1. varchar(n):长度为n个字节的可变长度且非Unicode的字符数据。char是固定长度的,而varchar会根据具体的长度来使用存储空间,另外varchar需要用额外的1-2个字节存储字符串长度。
2025-03-05 14:55:37
521
原创 tomcat编码问题
服务端解码:首先tomcat的url参数默认解码方式8.0.30之前是iso8859-1,之后是utf-8。如果指定了usebodyencodingforurl=true,则会使用表单请求体,context-type的编码。客户端编码:get请求是url参数,编码用的是浏览器默认的,也可以指定,用 var encodedValue = encodeURIComponent(value);2.服务端解码:默认使用请求头传过来的context-type。1.客户端编码:设置请求头的context-type。
2025-01-09 16:29:48
353
原创 ssl证书
2.基本用法:首先服务器需要注册证书。当浏览器使用https访问服务器的时候,首先要建立tcp和ssl的链接,服务器会返回证书,证书里面包含服务器的信息,浏览器通过验证对比访问的网址信息和证书的信息确认服务器是否安全,如果安全就会使用证书里面的加密算法生成一个密钥,然后通过证书公钥将密钥加密,传回服务器。服务器用证书私钥对证书公钥解锁,获取到密钥之后,才用密钥对要传输的信息进行加密。这样大家都有对应的密钥了,就能加密传输了。1.是一种发起http网络请求验证数据的方式。
2024-12-09 14:43:59
147
原创 idea的version control
完成以上步骤后,当你尝试删除项目中的文件时,IDEA 会弹出一个确认对话框,询问你是否希望同时从 SVN 中删除该文件。4. 在 `Confirmation` 页面中,找到 `When files are deleted` 选项。2. 进入 `File` > `Settings`(或者使用 `Ctrl + Alt + S` 快捷键)。3. 在设置对话框中,导航到 `Version Control` > `Confirmation`。1. 打开 IntelliJ IDEA。
2024-12-03 16:52:05
719
原创 项目日志文件没生成
如果日志本地可以生成的话,证明日志框架没问题。在产线如果没生成,或者没有追加。得把文件权限改成user都能write或者其他权限。
2024-07-17 17:38:18
216
原创 log4j.appender.Logfile.File=./logs/its_log
同样地,在Linux上,当Tomcat作为一个守护进程运行时,它的工作目录也是其安装目录,除非在启动脚本(如 catalina.sh 或 startup.sh)中指定了不同的工作目录。如果Tomcat是以服务的方式在Windows或以守护进程(daemon)的方式在Linux上运行,那么它的工作目录通常是Tomcat的安装目录。因此,如果你是在一个Web容器内运行的应用,那么 ./logs/its_log 将会在Web应用的根目录下的 logs 文件夹中创建名为 its_log 的日志文件。
2024-07-17 10:29:58
858
原创 mybatisplus的null异常
result和collection不要弄混,会导致Cause: java.lang.NullPointerException异常。正常来说mybatis对查回来的null值不会做什么判断处理,不会报这个空指针错误。上面的也可以写成子查询,但是子查询非常非常慢。建议还是连表查询,只需查一次。
2024-07-12 15:35:58
508
原创 excel操作 vlookup 批量序列
或者直接在选中多个单元格后,右键点击选择“填充序列”或直接使用快捷键Ctrl + E(在某些版本的Excel中)。或者,可以通过菜单操作:选择单元格后,点击“开始”选项卡 -> “编辑”组中的“填充”按钮 -> 选择“系列”。首先,在你想要开始填充序列的单元格中输入序列的起始数值,比如输入 1。在弹出的“序列”对话框中,确保“列”被选中(如果你是垂直填充的话)。如果需要,还可以设置“停止值”,即序列填充到哪个数值为止。输入“步长值”为 1,这表示每次递增的数值。点击“确定”,完成递增序列的填充。
2024-07-01 16:53:29
1991
原创 window下的java -jar命令
综上,> NUL 2>&1 的整体作用是将命令的正常输出(STDOUT)和错误输出(STDERR)都重定向到NUL,即同时丢弃命令的所有输出信息,既不显示在屏幕上也不保存,使得命令执行过程在视觉上显得“安静”。不阻塞当前shell:这意味着启动Java应用后,shell会立即获得控制权,不会因为Java应用的运行而被阻塞,这对于需要启动长时间运行的服务或应用尤为有用,因为你可以在不中断应用运行的情况下继续使用当前的命令行界面。因此,2>&1 的意思是把标准错误输出重定向到与标准输出相同的地方。
2024-06-29 12:06:11
1223
原创 excel的vba操作
右键点击变量,选择“添加监视”(Add Watch)或在菜单中选择“调试” -> “添加监视”(Debug -> Add Watch),可以在“监视”窗口中跟踪变量的值。如果有错误,VBA编辑器会指出问题所在。Shift + F8(Step Into):执行下一行代码,如果下一行是函数调用,则会进入函数内部进行单步执行。在代码编辑器中,点击你想要暂停执行的代码行旁边的灰色区域,会出现一个红色圆点,表示断点已设置。运行程序或宏时,执行会暂停在断点处,此时你可以检查变量的值、观察堆栈跟踪或者逐步执行代码。
2024-06-18 14:02:47
1367
原创 tomcat8w.exe指向了别的tomcat
找到Tomcat服务项:导航到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TomcatX(这里的X是你的Tomcat服务名称,可能是Tomcat8)。自动更新未更新路径:如果通过升级或更新Tomcat版本,旧的服务配置没有被正确更新,新的Tomcat安装目录下的tomcat.exe可能没有被指派给服务。复制或移动Tomcat:如果Tomcat目录被移动到另一个位置,但注册表中的路径未更新,服务会尝试从旧位置启动tomcat.exe。
2024-06-05 13:52:16
649
原创 Win10下IIS配置 C#项目的部署与发布
1.找到控制面板:【开始】菜单鼠标右击,打开【控制面板】2.打开控制面板,点击【程序】,点击【启动或关闭windows功能】下一步,点击【启动或关闭wondows功能】3.开始修改IIS了,我是这样勾上的,有可能比较多。4.验证ISS是否正确安装,等待几分钟后IIS配置完成。在浏览器输入http:localhost会出现IIS首页的页面。第一次修改的时候出现了成功页面,但是后来删除了IIS默认的网站就打不开了,但是不影响的。
2024-04-30 14:53:50
720
原创 Error setting non null for parameter #2 with JdbcType null
可能是mybatis识别到多个地方要传值,但是实际传进去的之后一个,那个没被注释的,所以报不应该传空值而传空值。
2024-03-19 22:39:33
1322
原创 idea控制台乱码问题
5、点击右上角 Edit Configurations,设置 Tomcat 中的 VM options ,点击展开按钮,添加两行代码。6、找到 Tomcat 本地安装目录的 conf 目录下的 文件 logging.properties,全部设置为 UTF-8。2、更改设置中 Setting / Editor / General / Console ,设置为 UTF-8。3、更改 Help / Edit Custom VM options,添加两行代码,设置 UTF-8。Server 输出正常。
2024-02-06 15:52:29
436
原创 axios 传递json axios发送json数据
当数组length不确定时,处理起来就比较麻烦了,所以这种情况传参使用JSON字符串的形式比较合适。前端向后台发送的请求数据有:JSON字符串和form表单两种格式。一般情况下可以两种格式都OK,但在某些情况下就需要根据情况来进行选择。这个时候的区别就体现出来了,Form表单会将数组按照索引进行拆分,所以这个时候后台不能直接通过dataArr来获取这个数组数据,1.当参数的数据结构比较复杂时,如不仅仅是简单的键值对,而是对象或数组嵌套结构时,建议使用JSON字符串传参。3.其他一般情况两者皆可。
2024-01-23 13:09:01
2405
原创 springboot默认jackson转换接收的requestbody的json字符串
通常我们在使用Spring Boot框架时,如果没有特别指定接口的序列化类型,则会使用Spring Boot框架默认集成的Jackson框架进行处理,通过Jackson框架将服务端响应的数据序列化成JSON格式的数据。本文主要针对在Spring Boot框架中使用Jackson进行处理的经验进行总结,同时也结合在实际开发场景中碰到的问题以及解决方案进行陈述。codeInAction: 代码实战集合,经验总结输出PS:目前市面上针对JSON序列化的框架很多,比较出名的就是JacksonGson。
2023-12-21 10:12:02
1411
原创 json转换工具属性排序
json 对象属性的输出顺序测试,fastJson 有序,jackson,gson无序(需代码中人工按约定来编码)接口数据签名规则。针对业务场景需要对接口中对象存在集合列表等,需要约定对象中的属性按字母升序来排序,而不是乱序。而jackson,gson是根据对象的类中定义的属性的代码中的先后顺序输出。否则“签名错误”,需要排查签名前和签名后的字符串对比。fastJson会根据对象的字段的首字母来排序。
2023-12-19 10:21:49
505
原创 mybatis和mybatisplus的mapper和mapper。xml存放位置
则不需要在pom文件中加入build资源重写。只需要配置mapper文件和xml文件的扫描路径。(xml扫描路径是在不在resource都要指定的,如果mapper和xml没在一个目录下)
2023-12-13 16:33:39
1359
原创 json转义符使用
在上述代码中,`json_str`变量包含一个JSON字符串,其中的双引号已经使用转义字符进行了转义。然后,可以通过对象的字段名访问相应的值,如`json_obj[“message”]`,最后将其打印出来。但则表达式,可能需要使用转义字符`\/`。– `\t`:在`description`字段中用于表示制表符。在上- `\”`:在`message`字段中用于转义双引号。– `\/`:在`regex`字段中用于转义斜杠。– `\\`:在`path`字段中用于转义斜杠。`字段中用于表示换行符。
2023-12-08 17:57:59
4846
原创 sqlserver使用json数据
通过确保插入的 JSON 数据是有效的,并符合 MySQL 的 JSON 格式要求,我们可以成功地将 JSON 数据插入到 MySQL 表中。在sqlserver 中存储json ,需要用字符串类型进行存储,一般用nvarchar()或 varchar()进行存储,不要用text进行存储,用text时候,json的函数不支持。(5)Json_Modify:更新Json字符串中的属性值,并返回更新的Json字符串。Json_Modify:更新Json字符串中的属性值,并返回更新的Json字符串。
2023-11-16 13:52:13
1848
原创 springboot项目部署jsp项目到tomcat上
当scope设置为system时,systemPath属性才会生效,systemPath为一个物理文件路径,来指定依赖的jar其物理磁盘的位置。红色的部分代表的只是将diretory目录的内容在编译和打包的时候保存在你所设定的打包路径下的指定文档,并不影响打包。首先是tomcat固定的一个web工程目录,webapp下的web-inf,里面的lib文件放所需依赖,这个在打成war包的时候会自动生成。1.如果是这种自己的jar包,要不就是修改本地maven,然后pom文件导入,然后打包他就会自动识别了。
2023-11-13 16:00:28
849
原创 Failed to clean project: Failed to delete D:\IdeaProjects\aaa\target target被占用
在该窗口中,切换到cpu 页签,然后在 关联的句柄中,输入 文件名(target),按下回车键,即可查找到被占用的进程。通过maven 打包时在clean 时提示 target 文件被占用。
2023-11-13 14:24:09
453
原创 编译 javac 如引入了jar包
这里的jar命令用于创建JAR文件,cvf参数用于指定创建模式和文件名,MyJavaClass.jar是打包后的JAR文件名,MyJavaClass.class是编译后的字节码文件名。这里的-classpath参数用于指定运行时的类路径,.表示当前目录,/path/to/package.jar表示第三方库的路径,MyJavaClass是程序的入口类名。这里的-classpath参数用于指定编译路径,.表示当前目录,/path/to/package.jar表示第三方库的路径。
2023-11-13 13:28:15
606
原创 io流。。。。
为了提高效率,我们可以使用另一个read(byte[] bytes)的重载方法,可以一次读取多个字节,至于一次读多少个字节,就在于你传递的数组有多大。这里需要注意一个问题:由于一个中文在UTF-8编码方案中是占3个字节,采用一次读取一个字节的方式,读一个字节就相当于读了1/3个汉字,此时将这个字节转换为字符,是会有乱码的。前面我们到的读取方式,不管是一次读取一个字节,还是一次读取多个字节,都有可能有乱码。// 每次读取多个字节到字节数组中去,返回读取的字节数量,读取完毕会返回-1.
2023-10-27 11:43:48
84
1
原创 web项目
springboot的war包是部署到服务器中才能访问,可执行jar包是内置了tomcat服务器。因为web目录是web项目的基本目录。为什么需要artifact,因为。3.搭建javaweb项目。为什么需要打成war包。为什么需要web目录。
2023-10-23 10:57:13
48
原创 线程池阻塞队列满了该怎么办,线上宕机了队列里的请求会丢吗
有界队列可以避免内存溢出,但是如果线程池的核心参数maximumPoolSize=Integer.MAX_VALUE的话,代表你可以无限制的不停地创建额外的线程出来处理任务,一台机子有几千甚至几万个线程,我们知道每个线程都有自己的线程栈,是需要占用一定内存资源的,垃圾回收又回收不了,会导致内存资源被耗尽,系统也会崩溃掉,即使没有崩溃也会让机子的cpu负载特别高。机器宕机系统重启后,启动一个后台线程去读取未提交和已提交的任务信息,重新提交到线程池,继续执行任务。线上机器宕机,线程池阻塞队列中的请求怎么办。
2023-10-10 00:11:45
354
1
原创 int字节
最小INT 的二进制表示方法为: 11111111 11111111 11111111 11111111 即:-2^31。INT类型 负数有 2^31-1 个,正数有 2^31-1 个,再加一个0.最高位是符号位,为1时为负数,为0时是正数。4个字节,一共有32位。其余31位用来表示值的。即共有2^32 -1个值。
2023-10-07 22:38:51
180
1
原创 ExecutorService 中 shutdown()、shutdownNow()、awaitTermination() 的区别及使用
java线程池
2023-10-07 22:36:32
738
1
原创 为什么需要重写equal hashcode方法
如果用hashcode,先用hashcode对数组长度取余,就得出存放在数组中的位置,如果该位置没有元素则直接存入,有元素则和该位置的元素进行equals,相同则不存入,不同则放到别的位置,时间复杂度为1。这时候hashcode相同了,但是equals比较的还是内存地址,所以还是会得出存入重复元素。而且不同对象得出的hashcode也可能相同,哈希冲突,所以equals也必须重写。这时候hashcode不相同,但是equals比较的还是内存地址,所以还是会得出存入重复元素。集合要提高效率,而且要去重。
2023-08-26 15:30:06
83
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人