- 博客(46)
- 收藏
- 关注
原创 MVCC机制
个人理解篇,不一定对,应付面试的时候看的MVCC(Multi-Version Concurrency Control)全称多版本并发控制,主要用在隔离模式下的提交读、可重复读模式下,依赖于readview和undolog链。
2024-05-28 17:17:03
1232
原创 MAC OS关闭SIP(navicat 无法保存密码)
3、等修改完成后,退出,继续选择终端,执行输入csrutil disable、y确认、输入用户名和密码、等一小会会提示成功。2、点击左上角实用工具、启动安全性实用工具、安全策略、选择降低安全性、勾上下面两个、我是都勾了,只勾上面的应该也可以。因为用的破解版,一开始是打不开的,用自带的修复软件修复后就可以打开了,但是保存密码就会报错,按照网上的一些操作。4、输入csrutil disable、y确认、输入用户名和密码、等一小会会提示成功。2、选择设置、下一步、输入密码。3、左上角实用工具、终端。
2024-04-12 11:40:30
2112
原创 ConcurrentHashMap线程安全机制
遍历链表或红黑树,如果找到与给定键相等的节点,则更新节点的值,并在onlyIfAbsent为false时返回旧值。7、如果当前位置的节点不为空且为链表或红黑树节点,则通过synchronized锁住头Node进行进一步的操作。8、如果插入操作成功,则根据binCount(桶计数)的值决定是否需要将链表转换为红黑树,并返回旧值。如果未找到相等的节点,则在链表尾部或红黑树中插入新节点。5、如果当前位置的节点为空,则使用CAS操作将新节点插入到空的位置。2、计算键的哈希值并进行扩散(spread)操作。
2024-04-02 10:21:20
314
原创 Stream流Collectors.toMap的坑
tnnd,这能报NPE?我前面不是做了空判断CollectionUtils.isNotEmpty(DBVOS)么?1、构建map的key不能重复,如果重复,必须传入key重复时的操作。OK,结束,浪费了👴半天时间,欺负👴不怎么看源码,算👴活该。工作了两年多了才知道的坑,今天一定要披露一下这个坑。2、构建map的key和value都不能为null。错误行就是23行,没错就是这行。
2023-12-21 14:25:22
472
转载 java使用Exchange协议发送邮件
网上介绍利用spring boot通过POP3、IMAP、SMTP等协议来发送电子邮件的资料非常多,然而介绍利用Exchange邮件服务器来发邮件的资料却极少。下面来看看,如何在spring boot中用Exchange服务器来发邮件,以及需要注意的问题。首先,你需要知道邮件服 务器的地址,例如我下面的例子中服务器地址是https://webmail.XXXXX.com/EWS/Exchange.asmx(XXXX是公司域名,不便公开)。
2023-06-28 16:44:41
1216
原创 Mac上idea关闭但项目还在运行
今天遇到了个问题 用idea启动springboot项目时发类似"找不到端口/端口已被占用"的问题,我这边大概"port not found"这种字眼,很纳闷为什么会找不到呢,于是开始排查问题。4、第四步于是想看任务管理器,强制退出任务,但是我用的mac,不知道哪里有任务管理器,只能点击左上角的苹果标志->强制退出,然后找不到项目。2、第二步发现我本地项目在web端也可以正常使用,怀疑是之前的项目未正常关闭导致。3、第三步彻底关闭idea,重启idea,再次重启项目,无效。
2023-06-14 10:46:39
1241
原创 ant design里Form表单遇到的一些问题
Input>标签没有自动换行,可以使用文本域标签1、对于文本框输入,想要自动换行并随行数自动增加行数。
2023-06-14 10:18:59
607
原创 json和接口对象的格式问题
在代码中可以使用setExpiredTime(Date date)等方法设置user的expiredTime,但是如果是通过json传递可能会有些时间方面的问题,比如启动服务后使用postman工具测试接口。一般来说我们在创建对象时会有一些时间方面的属性,比如以下对象。例如:2023年4月21日15点31分42秒000毫秒。3、在对象的属性上添加注解@JsonFormat。1、json里的时间属性用格式化的日期时间。2、json里的时间属性用时间戳。
2023-04-24 15:43:55
178
原创 Springboot读取非application.xml的其他xml配置文件
这表示了除了application.yml外还有application-jdbc.yml和application-es.yml两个配置文件,这样我们就可以在application-jdbc.ym里配置专门的jdbc配置属性,在application-es.yml里专门配置es的配置属性。例如:application-jdbc.yml。
2023-04-10 16:35:28
458
原创 前端点击按钮开启新页面(Ant Design)
组件中添加了三个ContactView的网格布局组件,每个ContactView展示不同的新组件内容。2、组件文件里(ContactDetail.tsx)创建组件内容。4、在数据对象文件里(data.ts)创建第三步里的VO对象。5、在需要添加点击开启新页面的按钮里设置跳转的路由网址。1、路由文件里(route.tsx)创建好路由。3、编写ContactView.tsx组件。
2023-04-03 14:56:28
2498
原创 SpringBoot启动时:Process finished with exit code 0
ps:博主项目pom文件里没看见配置,但是项目里已经引入了这个依赖的,所以重新加入进去后刷新maven重启项目起来了,然后不信邪把配置拿掉再次重启又可以了,无语,没搞懂为什么,可能是之前没刷新maven成功。启动项目遇到此问题时表明项目在启动完毕后退出了,并不是报错,如果想要让项目一直启动以用来debug测试等可以加上以下依赖。
2023-03-13 19:58:42
803
原创 Couldn‘t store trigger ‘‘ for ‘‘ job:Couldn‘t retrieve job because the BLOB couldn‘t be deserialized
Couldn't store trigger 'A' for 'B' job:Couldn't retrieve job because the BLOB couldn't be deserialized: com.demo.TaskClass,local class incompatible: stream classdesc serialVersionUID = 12345, local class serialVersionUID = 6789
2022-06-17 10:48:44
5049
转载 Mybatis ResultMap和ResultType
ResultMap和ResultType: 两者都是表示查询结果集与java对象之间的一种关系,处理查询结果集,映射到java对象。resultMap:表示将查询结果集中的列一一映射到bean对象的各个属性。 <resultMap id="userResultMap" type="com.xxx.User"> <id column="id" property="id"/> <result column="user_id" propert
2021-12-28 11:36:02
910
原创 Java执行Linux命令
主要使用到两个类Runtime和Process//获取Runtime实例Runtime rt = Runtime.getRuntime();//command是字符串类型,为需要执行的linux命令Process p = rt.exec(command);// 查看硬盘空间//初始化缓冲阅读器BufferedReader in = null;//获取命令所得的缓冲流结果in = new BufferedReader(new InputStreamReader(p.getInputStre
2021-12-21 18:15:01
10519
转载 shell编程if的参数
1、shell 编程中使用到得if语句内判断参数–b 当file存在并且是块文件时返回真 -c 当file存在并且是字符文件时返回真 -d 当pathname存在并且是一个目录时返回真 -e 当pathname指定的文件或目录存在时返回真 -f 当file存在并且是正规文件时返回真 -g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真 -h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效 -
2021-12-19 16:12:58
299
原创 Mysql 循环插入10000条数据
最近写app需要用到一些测试数据,大概一万条以上,就发现直接用insert 太慢了,不现实,于是查阅资料,可以使用存储过程去循环构建一万条,速度很快,大概20s左右,如下:DROP PROCEDURE IF EXISTS proc_initData;-- 如果存在此存储过程则删掉DELIMITER $ -- 将结束符改成$CREATE PROCEDURE proc_initData()BEGIN DECLARE i INT DEFAULT 1; WHILE i<=100
2021-12-08 12:03:44
7469
原创 Linux sed命令
本文梳理一下平时用到过的sed命令1、在某一行前或某一行后添加内容#在内容行的后一行添加新增内容sed -i '/新增内容/a\文件内容' test.txt#在内容行的前一行添加新增内容sed -i '/新增内容/i\文件内容' test.txta:append(附加),在某行后附加上一行i:insert(插入),在某行前插入一行例子:#查看test.sh内容[root@localhost ~]# cat test.shqweasdfzxcasdf#在包含'qw
2021-11-19 11:33:55
1044
原创 错误:类 xxx 是公共的, 应在名为 xxx.java 的文件中声明
此错误是因为类名和类文件名不一致造成的,我之前遇到是因为类名书写没有遵循驼峰规则,于是改了一下类名,但是类文件名没有改,启动项目时报错。
2021-11-12 11:17:20
12969
1
原创 关于git冲突解决
目前遇到过两种冲突解决1、git cherry-pick commitId操作步骤:先手动解决冲突,解决完之后执行命令"git add .",然后执行"git cherry-pick --continue"2、git rebase branchName操作步骤:先手动解决冲突,解决完之后执行命令"git add .",然后执行"git rebase--continue"总结:解决完冲突,在continue之前先git add .一下,以前都是直接continue的,也没出现过问题,网上.
2021-11-04 11:39:27
427
原创 关于springboot注解@MapperScan和@ComponentScan
最近自己构建项目时,遇到了一个问题,在工作中可以使用注解@AutoWired来自动装配接口类进行调用,但是在自己构建的项目里使用不了会报错,于是经过各种查阅和项目阅读,知道了需要在启动类上加@MapperScan和@ComponentScan来将包注入到spring容器中,将其托管给spring容器。1、使用方法:在启动类上加,如下@MapperScan(basePackages = "com.example.demo.Repository")@ComponentScan(base...
2021-10-26 18:41:13
1913
原创 Springboot+Mybatis控制台打印sql语句
在application.yml文件中加入以下配置:#打印sql语句logging: level: com.iacp.dao : debugcom.iacp.dao:是你的dao包路径,也就是连接xml文件的Repository接口类所在的包路径如下图:这里可以写成com.example.demo.Repository,也可以写成com.example.demo。...
2021-10-26 17:50:39
192
原创 Spring boot项目Controller层返回实体过滤为null的属性
在写项目时,有时候会希望在接口层返回的字段中过滤掉为null值的字段,可以在返回的对象类上加上注解@JsonInclude(JsonInclude.Include.NON_NULL)举例如下:1、自定义返回方法体:import com.fasterxml.jackson.annotation.JsonInclude;import com.fasterxml.jackson.annotation.JsonInclude.Include;@JsonInclude(Include.NON_EM
2021-10-26 15:58:18
1842
原创 Mybatis中特殊符号>,<等写法
1、使用<![CDATA[ ... ]]>,被包含在<![CDATA[ ... ]]>中的sql会被分析器忽略,相当于直接写死,因此写mybatis的映射文件的时候最好只把特殊字符写在<![CDATA[ ... ]]>里,这样可以让分析器忽略的内容更少,防止分析器会忽略需要解析的标签。 < <![CDATA[ < ]]> <= ...
2021-10-24 17:39:06
7857
原创 对象和对象属性的转换
自定义对象Get类:/** *自定义对象Get */public class Get { private int id; private String name; private Status status; public Status getStatus() { return status; } public void setStatus(Status status) { this.status = statu
2021-10-24 17:17:27
279
原创 自定义java Pageable分页对象
前两天写service层的方法中需要对数据库中的数据进行分页查询,本来都是在接口层由前端传过来一个Pageable对象,在接口中对Pageable对象用注解进行定义,所以一时间不知道怎么写,后来得知,其实可以这样写:可以使用Pageable的实现类AbstractPageRequest的子类PageRequest.of定义/** * Creates a new {@link PageRequest} with sort direction and properties applied. *
2021-10-22 11:44:56
2135
转载 JAVA注解:@Pageable以及前端传参
Pageable 是Spring Data库中定义的一个接口,该接口是所有分页相关信息的一个抽象,通过该接口,我们可以得到和分页相关所有信息(例如pageNumber、pageSize等)。Pageable定义了很多方法,但其核心的信息只有两个:一是分页的信息(page、size),二是排序的信息。在请求中只需要在方法的参数中直接定义一个pageable类型的参数,当Spring发现这个参数时,Spring会自动的根据request的参数来组装该pageable对象。Spring支持的reques
2021-08-25 18:28:20
5547
1
原创 Mybatis中的#和$的区别
简单说#{}是经过预编译的,是安全的。而${}是未经过预编译的,仅仅是取变量的值,是非安全的,存在SQL注入。1、#{} 这种取值是编译好SQL语句再取值(预编译)例如:select * from stu where name = #{name or age = 17}编译过程:1、第一步:select * from stu where name = "?" 2、第二步:将#{}里的值代入到? 3、第三步:编译语句 编译后结果:selct *
2021-08-16 16:59:46
91
转载 MySQL中的排序(ORDER BY)
当使用 SELECT FROM 时,如果不排序,数据一般将以它在底层表中出现的顺序显示。这可以是数据最初添加到表中的顺序。但是,如果数据后来进行过更新或删除,则此顺序将会受到MySQL重用回收存储空间的影响。因此,如果不明确控制的话,不能(也不应该)依赖该排序顺序。关系数据库设计理论认为,如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有意义。 ...
2021-08-16 15:25:32
6855
转载 fastjson序列化时与反序列化时常用特征值的中文注解
一、SerializerFeature(序列化)QuoteFieldNames,//输出key时是否使用双引号,默认为true UseSingleQuotes,//使用单引号而不是双引号,默认为falseWriteMapNullValue,//是否输出值为null的字段,默认为false WriteEnumUsingToString,//Enum输出name()或者original,默认为falseUseISO8601DateFormat,//Date使用ISO8601格式输出,默认为
2021-08-04 17:30:41
2195
1
原创 注解@RequestParam和@PathVariable
一、@RequestParamRequestParam的意思是请求参数,顾名思义,这是需要传入url的参数,在百度上搜索淘宝后,网址可能会跳转到https://www.baidu.com/?xxx=百度&xxx=nnn,在这里,问号之后的xxx=百度&xxx=nnn便是我们输入的请求参数,参数之间用&分隔,参数形如key=value。这里的请求参数可以当做用户自定义输入的,所以根据不同的用户输入,网页会有不同的处理输出。在代码中的书写格式如下: @Reques
2021-08-04 16:56:32
895
1
原创 SpringBoot-URL路由:@Controller和@RequestMapping
一、@Controller标注的类表示的是一个处理HTTP请求的控制器(即MVC中的C),该类中所有被@RequestMapping标注的方法都会用来处理对应URL的请求。该类也可以被@RequestMapping标注,此时该类中所有方法的url路径都在该目录下。在SpringMVC框架中,使用@RequsetMapping标注可以将URL与处理方法绑定起来,例如:@RestController//控制器@RequestMapping("/index")//绑定接口url:localhost:8
2021-08-04 15:48:13
1443
原创 Linux安装sh服务
一、如果Windows里有安装包的话,将sh文件传输到linux系统里# rz // 打开客户端文件选择器# sh xxxx.sh // 安装传入的sh服务选择要上传的文件 点击确定如果提示没有rz命令的话 需要安装命令 # yum install lrzsz //安装命令 ps:# sz filename //从服务端将filename文件传入客户端之后再传文件。二、使用wget命令安装wget https://xxx //https://xxx为下载地
2021-07-16 18:59:11
2199
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人