自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 对SpringBoot项目Jar包进行加密防止反编译

只需要在启动类的pom.xml文件中加如下插件即可,需要注意的是,改插件时要放到spring-boot-maven-plugin插件后面,否则不起作用。java -javaagent:xxx-encrypted.jar='-pwd=密码' -jar xxx-encrypted.jar。这样,打包好的项目只能在生成机器码的机器运行,其他机器则启动不了项目。无密码启动:java -javaagent:xxx-encrypted.jar -jar xxx-encrypted.jar。命令,会自动生成一串机器码。

2024-08-27 11:08:02 932

原创 SpringBoot + Redis的zset实现排行榜,实现分数相同按照时间顺序排序

使用zset提供的排序功能,可以按照分数从高到低排序,**但是如果分数相同,按照默认的排序规则会按照value值排序**,而不是按照时间顺序排序。假设现在的时间戳是1680417299000,除以1e13得到0.1680417299000,再加上一个固定的分数(比如10),那么最终的分数就是10.1680417299000,可以将它作为zset中某个成员的分数,用来排序。实现了分数倒序排列,分数相同时间戳大的排在了前面,这和我们的需求相反了,所以,就需要在做一次转换。3、获取zset某个用户的分数和名次。

2024-08-26 16:07:41 313

原创 idea 设置自动移除多余 的import (或整个项目删除)

2、如果想把整个项目的移除可以如下操作。1、开发的时候,直接自动去除多余的引入。

2024-08-05 16:33:07 612

原创 Java 限制只能输入中英文数字的校验

在Java中,我们可以利用正则表达式来实现对文本内容的校验。

2024-07-03 13:58:20 188

原创 npm 运行/打包vue项目时报错:Error: error:0308010C:digital envelope routines::unsupported的解决方法

前端项目启动(npm run dev)和打包时(npm run build:prod)报出如下错误,

2024-06-14 10:57:02 547

原创 vue中数组常用的六种循环方法、VUE中list的各种方法和运用

简单记录一下,常用的六种数组循环的方法,分别是for(),map(),forEach(),filter (),every(),some();

2024-06-05 14:26:44 2707 1

原创 MySQL 插入数据的时候自动忽略重复数据

MySQL中插入数据,如果插入的数据在表中已经存在(主键或者唯一键已存在),使用insert into语法的时候,如果遇到重复数据,会直接报错,导致事务回滚,所有插入数据,全部失败。如果想要忽略重复数据,只插入不重复的数据,可以使用以下方法。

2024-05-21 18:26:28 751

原创 Java实现微信扫码登入的实例代码

审核通过的话就是这个样子 还有最底下的授权回调地址 (www.xxxxx.com) 填写域名即可。首先去通过微信开放平台做好开发者资质认证,创建网站应用然后等待审核。第一步 用户通过点击事件获取到微信二维码连接。

2024-04-23 18:32:23 400

原创 Java读取html 中标签的值

如果返回的是json格式的字符串,可以用jsonUtil的工具类,直接转换成jsonobject,然后直接jsonObject.get("key"),就可以拿到数据,那如果返回的是一个html页面呢,应该怎么获取html页面中的信息呢;根据 HTML 的结构和需要提取的内容,可以使用 Jsoup 提供的选择器来获取指定的元素。Java 提供了多个库用于解析 HTML,比如 Jsoup 和 HtmlUnit。Elements这个对象提供了一系列类似于DOM的方法来查找元素,抽取并处理其中的数据。

2024-04-23 17:29:36 1387

原创 spring多线程实现+合理设置最大线程数和核心线程数

每秒200个任务需要20个线程,那么当每秒达到1000个任务时,则需要(1000-queueCapacity)*(20/200),即60个线程,可将maxPoolSize设置为60。当负载降低时,可减少线程数量,如果一个线程空闲时间达到keepAliveTiime,该线程就退出。这实际上是将队列长度设置为Integer.MAX_VALUE,将会导致线程数量永远为corePoolSize,再也不会增加,当任务数量陡增时,任务响应时间也将随之陡增。2.分析下线程池处理的程序是CPU密集型,还是IO密集型。

2024-03-29 18:28:07 2456

原创 解决:Command line is too long. Shorten command line for xxx or also for Application default configurat

点击项目启动配置项 --> Enviroment --> Shorten command line 选项 --> 选择 classpath file 或JAR manifest 选项 --> 重新启动工程运行即可。解决方法有两种,正如报错信息截图所示,缩短命令行或者改为应用程序默认配置。

2024-03-25 14:39:08 8057

原创 mysql5.7先group by分组再order by取最新一条记录时失效

mysql 先group by分组再order by取最新一条记录时失效

2024-02-27 14:55:14 628

原创 SpringBoot项目启动后执行指定方法的四种实现

实现接口ApplicationListener方式和实现ApplicationRunner,CommandLineRunner接口都不影响服务,都可以正常提供服务,注意监听的事件,通常是ApplicationStartedEvent 或者ApplicationReadyEvent,其他的事件可能无法注入bean。@PostConstruct是Java自带的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。(与@PostConstruct区别之一)

2024-02-21 10:06:48 1677

原创 SQL 查询两个时间段是否有交集的情况 三种写法

查询两个时间段是否有交集

2024-01-17 14:52:46 1139

原创 Mapstruct对象插入数据库某个字段总是为空或者赋值失败

1、因为mapstruct的原理是通过调用get方法获取源对象的值,再调用set方法赋值给目标对象(如图),所以源对象需要有get方法,目标对象需要有set方法。检查发现是目标对象没有写set方法也没有使用lombok的@Data注解。使用mapstruct进行对象间赋值时出现了赋值失败的情况,即赋值后新对象里面的所有属性都是空值,点击查看class。比如:addNum,如果字段是这样的,那么就总是null。如果字段是add开头命名的字段,那么就无法赋值,解决方法:我用最粗暴的方法,直接不用这个了。

2023-12-22 16:02:50 532

原创 【Mybatis-plus】updateById()方法不能更新字段为null的原因及解决办法---@TableField(updateStrategy = FieldStrategy.ALWAYS)

在日常项目开发过程中,经常会使用Mybatis-plus的updateById()方法,快速将接收道德参数或者查询结果中原本不为null的字段更新为null,并且该字段在数据库中可为null,这个时候使用updateById()并不能实现这个操作,不会报错,但是对应的字段并没有更新为null。设置好了之后,在更新时就可以直接使用mybatis-plus中的updateById方法就可以成功将字段更新为null,但是这样做存在一定的弊端,就是当需要这样处理的字段比较多时,要给对应的字段都要添加上这样的注解。

2023-12-22 15:53:03 1667 1

原创 @TableLogic注解说明,以及对增删改查的影响

@TableLogic注解说明,以及对增删改查的影响

2023-11-18 14:24:06 1909

原创 【常用算法】java实现的三种分页算法

java实现的三种分页算法

2023-11-10 10:03:54 1128

原创 MySql查询当天、本周、本月、本季度、本年的数据

MySql查询当天、本周、本月、本季度、本年的数据

2023-10-31 14:28:08 653 1

原创 使用logback按天生成日志并按等级进行分类

使用logback按天生成日志并按等级进行分类

2023-10-31 11:11:57 601

原创 详解如何快速查询Node.js版本信息(六种方法)

快速查询Node.js版本信息

2023-10-23 11:49:55 11143

原创 mysql varchar类型字段为数字时,不带引号查询时查询结果与事实不符

mysql varchar类型字段为数字时,不带引号查询时查询结果与事实不符

2023-10-21 11:55:47 339

原创 mapstruct 部分字段不生成的问题

属性名称带add前缀则会不生成,要么去掉@Builder,要么把属性名add改了。使用mapstruct自动生成代码。有一个字段:addAmount。类上使用了@Builder注解。开发的时候遇到的坑。

2023-10-06 14:17:52 383

原创 mybatis一对多关系中嵌套结果查询的 封装对象的原理

Mybatis 在映射文件中加载关联关系对象主要通过两种方式:嵌套查询与嵌套结果

2023-09-28 14:48:15 1268

原创 Spring自动加载数据几种方式执行顺序

Spring应用启动过程中,肯定是要自动扫描有@Component注解的类,加载类并初始化对象进行自动注入。加载类时首先要执行static静态代码块中的代码, 之后再初始化对象时会执行构造方法。 在对象注入完成后,调用带有@PostConstruct注解的方法。 当容器启动成功后,再根据@Order注解的顺序调用CommandLineRunner和ApplicationRunner接口类中的run方法。因此,加载顺序为static>constructer>@PostConstruct&

2023-09-14 20:06:39 1072

原创 Java8常用时间方法(LocalDateTime操作)

【代码】Java8常用时间方法(LocalDateTime操作)

2023-09-11 16:53:58 255

原创 MySQL 对查询的结果集添加自增序号,两种写法

MySQL 对查询的结果集添加自增序号,两种写法

2023-09-11 16:52:42 2185

原创 使用LocalDateTime计算时间差

使用LocalDateTime计算时间差

2023-09-09 16:48:45 3395

原创 MySQL中如何计算时间相差的分钟数

本文介绍了MySQL中三个常用的函数用于计算时间相差的分钟数,它们分别是TIMEDIFF、TIMESTAMPDIFF和DATEDIFF函数。使用这些函数可以轻松地计算时间相差的分钟数,提高你的工作效率。使用TIMEDIFF函数可以计算两个时间相差的时间差,返回值是时间类型。使用DATEDIFF函数可以计算两个日期相差的天数,如果你需要计算分钟数,可以将天数乘以24再乘以60。DATEDIFF函数是MySQL中用于计算日期差的函数,但它也可以用于计算时间差。2. TIMESTAMPDIFF函数。

2023-09-06 10:08:57 5189

原创 java定时任务cron表达式每周执行一次,执行时间与实际时间不一样的坑!!!

java定时任务cron表达式每周执行一次,执行时间与实际时间不一样的坑!!!

2023-08-29 17:37:28 3575

原创 判断bigdecimal类型是正负数还是0+bigdecimal正负数转换

【代码】判断bigdecimal类型是正负数还是0+bigdecimal正负数转换。

2023-08-28 15:53:22 854

原创 常见数据库批量插入,如何不插入重复数据?Mysql 4 种方式避免重复插入数据!

最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下:这里为了方便演示,我新建了一个user测试表,主要有id,username,sex,address这4个字段,其中主键为id(自增),同时对username字段设置了唯一索引:当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回。

2023-08-10 14:20:56 1668

原创 MySQL 手机选号(AABB、ABCD、DCBA、AAA),SQL SERVER 手机选号(AABB、ABCD、DCBA、AAA),通过规则查询靓号

MySQL 手机选号(AABB、ABCD、DCBA、AAA),SQL SERVER 手机选号(AABB、ABCD、DCBA、AAA),通过规则查询靓号

2023-08-10 11:52:07 106023

原创 mysql中判断字段数据长度

mysql中判断字段数据长度

2023-08-09 14:36:05 3048

原创 MySQL登录时出现 Access denied for user ‘root‘@‘xxx.xxx.xxx.xxx‘ (using password: YES) 的原因及解决办法

分析原因:(区分)当本地出现这样的情况,就是密码错误,找到正确的密码或者修改密码;当远程登陆的时候,首先确定登陆密码是否正确,第二确定是否远程授权。例子:mysql> set password for root@localhost = password('123');格式:mysql> set password for 用户名@localhost = password('新密码');格式:mysqladmin -u用户名 -p旧密码 password 新密码。方法4:在忘记root密码的时候,可以这样。

2023-07-28 21:36:00 15992

原创 Could not find artifact org.springframework.boot的原因之一

完成之后pom.xml文件可能还会爆红,这时候需要重启idea。只要拉取不到,就是版本错了,可以去maven中央仓库查看版本号。的版本从2.5.4手动改成2.3.4时。

2023-07-28 21:34:42 3773

原创 springboot上传文件到本地,并且返回一个http访问路径

springboot上传文件到本地,并且返回一个http访问路径

2023-07-14 12:03:40 3624 1

原创 关于swagger突然跳转登录页面,swagger打开跳转login页面BUG

关于swagger突然跳转登录页面,swagger打开跳转login页面BUG

2023-07-10 17:00:46 2240

原创 SpringBoot添加外部jar包及打包(亲测有效)

SpringBoot添加外部jar包及打包(亲测有效)

2023-07-08 11:11:32 1625

原创 Stream通过findFirst()查找满足条件的一条数据,根据某个属性值获取一条数据

Stream通过findFirst()查找满足条件的一条数据,根据某个属性值获取一条数据

2023-07-07 19:06:39 6066

空空如也

空空如也

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

TA关注的人

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