- 博客(66)
- 收藏
- 关注
原创 SpringBoot创建动态定时任务的几种方式
Quartz是一个功能强大的开源任务调度框架,支持复杂的任务调度需求,如任务的持久化、分布式任务管理、基于数据库的调度等。通过Controller提供API接口,这里的TaskService调用了QartzService的对应接口,并做了一个写数据库读写操作,主要记录定时任务状态、执行记录信息的等。通过TaskScheduler,你可以灵活地安排任务的执行时间,并且可以在运行时动态地创建、取消任务。然而,它的灵活性较差,对于复杂的任务调度需求,或需要动态调整任务时间的场景,可能并不适用。
2026-05-03 21:23:57
320
原创 Spring Boot 多数据源解决方案:dynamic-datasource-spring-boot-starter 的奥秘(上)
dynamic-datasource-spring-boot-starter 是一个用于在 Spring Boot 项目中实现动态数据源切换的工具。在实际的应用开发中,经常会遇到需要连接多个数据源的情况,例如一个销售系统会根据不同的业务模块,如线索、订单、库存、物流等连接到不同的数据库。手动管理多个数据源的切换和配置是一项复杂且容易出错的任务,而这个 starter 就是为了解决这些问题而生。
2026-05-03 19:50:12
307
原创 Node.JS 版本管理工具 Fnm 安装及配置(Windows)
在使用多个终端或 Shell 的情况下,Fnm 会在该路径下创建相应的目录,以便管理不同 Shell 会话的 Node.js 版本。若 Fnm 不能在本地查找到符合项目指定的 Node 版本,将会在终端中给出提示,若选择 Y 将会自动下载并切换至指定 Node 版本。$env:FNM_LOGLEVEL:设置 Fnm 的日志级别,默认值info,可选值quiet, error, info。$env:FNM_NODE_DIST_MIRROR:指定 Node.js 分发包的镜像地址。否则请重新尝试以上步骤。
2026-05-03 18:19:00
351
原创 MySQL一文弄懂时区&time_zone
你还在被以下问题困扰吗:MySQL 的安装规范中应该设置什么时区?JAVA 应用读取到的时间和北京时间差了 14 个小时,为什么?怎么解决?已经运行一段时间的业务,修改 MySQL 的时区会影响已经存储的时间类型数据吗?迁移数据时会有导致时间类型数据时区错误的可能吗?看完这篇文章,你能解决上面所有的疑惑。
2026-05-03 16:48:51
341
原创 Java进阶--IO流
我们把数据的传输,可以看做是种数据的流动,按照流动的向,以内存为基准,分为输input 和输出output ,即流向内存是输流,流出内存的输出流。Java中I/O操作主要是指使java.io包下的内容,进输、输出操作。输也叫做读取数据,输出也叫做作写出数据。
2026-05-03 15:16:28
314
原创 mysql--多表查询
子查询就是嵌套查询,即SELECT中包含SELECT,如果一条语句中存在两个,或两个以上SELECT,那么就是子查询语句了。如果多条查询语句查询出来的结果,字段数量不一致,在进行union/union all联合查询时,将会报错。SELECT 字段列表 FROM 表1 RIGHT [ OUTER ] JOIN 表2 ON 条件 …SELECT 字段列表 FROM 表1 LEFT [ OUTER ] JOIN 表2 ON 条件 …from 表1 表2 where 连接条件;
2026-05-02 21:39:15
388
原创 Java进阶教程(二)代码块
构造代码块:给所有的对象进行统一的初始化。对象一建立就运行并且优先于构造函数。静态代码块:随着类的加载而加载。只执行一次,用于给类进行初始化。主函数、构造函数、静态代码块和构造代码块执行的先后顺序是怎样的?
2026-05-02 20:28:37
18
原创 @RestController注解
Spring MVC(Model-View-Controller)是Spring框架中的一个模块,用于构建基于MVC设计模式的Web应用程序。Model:负责处理数据和业务逻辑。View:负责展示数据。Controller:负责处理用户请求并返回响应。Spring MVC通过一系列的注解(如等)简化了Web应用程序的开发。REST(Representational State Transfer)是一种软件架构风格,用于设计网络应用程序。
2026-05-02 19:12:17
338
原创 MySQL单表存多大的数据量比较合适
经常使用MySQL数据库的小伙伴都知道,当单表数据量达到一定的规模以后,查询性能就会显著降低。因此,当单表数据量过大时,我们往往要考虑进行分库分表。那么如何计算单表存储多大的数据量合适?当单表数据达到多大的规模时,我们才要进行分库分表呢?通过以上的分析,我们可以发现,关于单表的数据量条数限制并没有一个统一的答案。单表可容纳多少数据量,这与表的主键以及数据行长度息息相关,需要具体情况具体分析。
2026-05-01 19:38:26
277
原创 MySQL 批量插入详解:快速提升大数据导入效率的实战方法
批量插入是提高 MySQL 数据插入性能的重要手段。通过使用批量插入技术,可以显著减少 SQL 执行次数,提高数据导入的效率。本文通过一个学生信息表的实战示例,详细介绍了批量插入的实现方法,并提供了性能优化的建议。希望这篇文章对您在处理大规模数据时有所帮助。如果有更复杂的数据处理需求,您还可以考虑使用 MySQL 的LOAD DATA语句或专门的 ETL 工具来进行数据导入操作。
2026-05-01 18:48:41
316
原创 JAVA (Springboot) i18n国际化语言配置
在Java中,国际化(Internationalization,通常简称为i18n)是一个过程,它允许应用程序适应不同的语言和地区设置,从而能够支持全球用户。Java平台为国际化提供了强大的支持,包括Locale类、ResourceBundle类以及用于格式化日期、数字和货币的类。
2026-05-01 17:09:10
315
原创 @RestController注解
Spring MVC(Model-View-Controller)是Spring框架中的一个模块,用于构建基于MVC设计模式的Web应用程序。Model:负责处理数据和业务逻辑。View:负责展示数据。Controller:负责处理用户请求并返回响应。Spring MVC通过一系列的注解(如等)简化了Web应用程序的开发。REST(Representational State Transfer)是一种软件架构风格,用于设计网络应用程序。
2026-05-01 15:27:05
297
原创 基础篇:Linux安装redis教程(详细)
英文注释解释的很清楚(翻译软件嘎嘎的),如果放开bind 127.0.0.1即只有本机可以访问,如果注释掉,所有环境都可以访问。(该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no)(2)保护模式修改:protected-mode的值默认为yes,将其修改为no;解压后当前的目录出现一个redis-5.0.7的目录,就是我们刚刚解压的目录。(3)守护进程修改:daemonize的值默认为no,将其修改为yes;
2026-04-22 12:50:00
352
原创 使用Springboot实现MQTT通信
MQTT(Message Queuing Telemetry Transport)是一种基于发布/订阅模型的轻量级消息传输协议,常用于物联网(IoT)场景中。它设计简洁、带宽占用少,非常适合资源受限的设备和网络环境。
2026-04-22 11:57:33
337
原创 MySQL--》理解锁机制中的并发控制与优化策略
锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中除了传统的计算机资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源,如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素,从这个角度来说锁对数据库而已尤为重要也更加复杂。按照锁的粒度细分,对于MySQL中的锁主要分为以下三类:1)全局锁:锁定数据库中的所有表2)表级锁:每次操作锁住整张表3)行级锁:每次操作锁住对应的行数据。
2026-04-22 03:25:00
203
原创 Java进阶总结——集合
说明:对于以上的框架图有如下几点说明1.所有集合类都位于java.util包下。Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。实现类:8个实现类(实线表示),对接口的具体实现。Collection 接口是一组允许重复的对象。
2026-04-22 01:56:27
239
原创 5分钟快速搭建一个 SpringBoot3 + MyBatis-Plus 工程项目
刷新后,在工程名 + Application的文件中可以启动这个。创建SpringBoot工程,这里有两种方式可选,一种是使用。为了测试是否配置成功,我们创建数据库mybatis。来检查是否连接成功,如下图所示,连接成功。在下方的终端输出可以看出,项目启动在。创建该项目的spring配置文件,在。在下方的终端输出可以看出,项目启动在。是用于简化类开发,修改后,记得更新。,没有修改配置需求时可以不写东西。最后,和自动创建一样,创建一个。等待项目创建完成,修改。自动创建,一种是通过。文件,配置数据库连接。
2026-04-22 00:28:57
218
原创 SQL 中 COUNT 的用法详解
COUNT(*):统计表中所有行,包括NULL值。COUNT(1):与COUNT(*)类似,统计所有行。COUNT(列名):统计某列中非NULL值的数量。COUNT(DISTINCT 列名):统计某列中不重复的非NULL值。COUNT可与GROUP BY和HAVING等子句结合,进行复杂的分组统计和条件过滤。COUNT(*)和COUNT(1)在大多数数据库中性能相同,可以按习惯使用。
2026-04-21 10:53:21
294
原创 SpringBoot 与 SpringCloud的版本对应详细版
spring cloud各个版本之间是有所区别的,比如在SpringCloud中,1.X和2.X版本在pom.xml中引入的jar包名字都不一样,比如有的叫spirng-cloud-starter-hystrix 有的叫spring-cloud-netflix-hystrix,维护起来会比较困难。spring-cloud-starter-netflix-xx 替换了原有的 spring-cloud-starter-xx(此处如有不正确请指出)关于spring cloud1.x版本和2.x版本区别。
2026-04-21 08:31:21
255
原创 Redis 安装及配置教程(Windows)【安装】
Redis 是用 ANSI C 编写的,可以在大多数 POSIX 系统中使用,而无需外部依赖。Linux 和 OS X 是 Redis 开发和测试最多的两个操作系统,官方建议使用 Linux 进行部署,Windows版本没有官方支持。Redis 在 Windows 平台上不受官方支持,Redis 官方只提供了源码包(zip、tar.gz 格式)。当然想要在 Windows 上安装 Redis 也还是可行的。
2026-04-21 06:14:43
335
原创 MySQL官网驱动下载(jar包驱动和ODBC驱动)【详细教程】
MySQL[这里是图片001]https://www.mysql.com/cn/到此,并完成了驱动的下载!
2026-04-21 03:56:01
47
原创 Java进阶之多线程
(2)synchronized方法控制对“对象”的访问,每个对象对应一把锁,每个synchronized方法都必须获得调用该方法的对象的锁才能执行,否则线程会阻塞,方法一旦执行,就独占该锁,直到该方法返回才释放锁,后面被阻塞的线程才能获得这个锁,继续执行。如果是模拟出来的多线程,即在一个cpu的情况下,在同一时间点,cpu只能执行一个代码,因为切换的很快,所以就有同时执行的错觉。线程同步:就是一种等待机制,多个需要同时访问此对象是线程进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程在使用。
2026-04-21 01:40:09
174
原创 【JAVA进阶篇教学】第十二篇:Java中ReentrantReadWriteLock锁讲解
读写锁是一种用于实现多线程环境下读写操作并发控制的锁机制。读写锁可以提高并发性能,特别是在多读少写的场景下。在使用读写锁时,需要注意读写锁的公平性、重入性、降级、升级和Condition等问题,以保证读写锁的安全性。
2026-04-19 20:03:41
182
原创 SpringCloud Gateway 集成 Sentinel 详解 及实现动态监听Nacos规则配置实时更新流控规则
Sentinel是家族的服务保护组件,很多项目在前中期没有遇到流量突增不太注意服务保护的重要性,当流量突增打爆应用服务或数据库时束手无策,可以不配置流控规则,但是需要时一定可以热加载使用,本文会对集成Sentinel以及动态拉取Nacos配置规则实现热加载流控规则进行讲解。官网地址因为不会持久化手动配置的流控规则,一般情况下我们都会提前配置一些我们需要的规则,可以通过代码或者配置文件配置。
2026-04-19 17:15:38
199
原创 Spring Boot的项目结构
合理的项目结构不仅能够提高代码的可读性和可维护性,还能够帮助团队成员更好地协作。特别是在大型项目中,良好的项目结构设计能够有效降低代码的耦合度,提高系统的可扩展性。此外,合适的测试结构和构建配置也是保证项目质量的重要因素。Spring Boot项目结构遵循Maven或Gradle的标准目录结构,同时融入了Spring Boot的特定约定。良好的项目结构不仅有助于代码组织,还能提高开发效率和项目可维护性。了解Spring Boot的项目结构对于开发高质量的应用至关重要。
2026-04-19 14:36:32
254
原创 Node.js看我的就行了!!!
最近nodejs崩了好多次,所以我决定重装。由于没有卸载干净,折腾了我两天#终于,我今天下午装好了我们从卸载开始(没有安装的小伙伴直接到第二步)
2026-04-19 11:47:10
189
原创 Mysql 驱动程序
MySQL 驱动程序是连接应用程序与 MySQL 数据库的重要组件。根据不同的编程语言和应用场景,MySQL 提供了多种驱动程序,包括 MySQL Connector/J(Java)、MySQL Connector/Python(Python)、MySQL Connector/NET(.NET)、MySQL Connector/C++(C++)、MySQL ODBC 驱动程序等。这些驱动程序简化了数据库操作,提高了性能,并增强了安全性。
2026-04-19 03:17:47
233
原创 开源数据同步中间件(Dbsyncer)简单玩一下 mysql to mysql 的增量,全量配置
Dbsyncer是一款开源的数据同步中间件,提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景,支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预警等。
2026-04-18 06:38:52
235
原创 【分布式】Hadoop完全分布式的搭建(零基础)
将接下来预计要进行连接的虚拟机ip都入加入到hosts文件,根据自己需要搭建的集群数量决定,本文的Master01用于伪分布式搭建,node1,node2及node3用于完全分布式的搭建,要记录对应的ip地址,以便进行后续操作。打开准备好的远程连接软件,我们后续将都在此进行操作,因为可直接粘贴复制和传送文件(用xshell也可),此处可用root登录也可用普通用户,后续因为yarn的使用,需要用普通用户连接。修改相应的IP地址,默认网关,和刚才虚拟机中的保持统一字段,在本文中统一为10.
2026-04-18 04:15:08
155
原创 ubuntu 安装 Redis
将 bin 目录安装到当前目录下 make install PERFIX=目录,当然也可以直接使用 src 下的脚本(可省略)也可以去官网下载别的版本 https://redis.io。
2026-04-18 01:51:50
217
原创 Redis 配置日志
3、将路径填入logfile后面的引号内,例如:logfile “d:/redislog/redis.log” (注意斜杆的方向,这个和windows cmd中的斜杆方向是反的)5、保存配置文件,以这个配置文件启动redis,然后这时候redis的启动框会变成一个黑框框,什么输出都没有,这就对了(因为输入全写到日志文件去了)2、打开配置文件,找到logfile(可能有多个logfile,认准旁边有loglevel的那个),或者直接搜logfile “”1、首先找到redis的配置文件。
2026-04-04 04:34:14
39
原创 MySQL----case的用法
CASE表达式是 MySQL 中一个非常有用的条件判断工具,它可以使得 SQL 查询更加灵活和动态。通过CASE,可以轻松地根据不同的条件对数据进行分类、转换、排序或更新,是 SQL 查询中常见且强大的功能之一。
2026-04-04 01:33:58
360
原创 sql专题 之 sql的执行顺序
存储与生成:虚拟表通常不存储实际数据,而是基于其他表或查询动态生成;结果集是查询执行后实际返回的数据集合。持久性虚拟表可以存储在数据库中供后续查询重用结果集通常是临时的,一旦查询完成就会被释放。用途虚拟表常用于简化复杂查询、提高查询可读性和可维护性;结果集则是查询执行后的直接输出,用于数据处理和展示。
2026-04-02 09:49:25
181
原创 Spring Cloud Data Flow 简介
1.Data flow 是一个用于开发和执行大范围数据处理其模式包括ETL,批量运算和持续运算的统一编程模型和托管服务。2.对于在现代运行环境中可组合的微服务程序来说,spring cloud data flow是一个原生云可编配的服务。使用spring cloud data flow,开发者可以为像数据抽取,实时分析,和数据导入/导出这种常见用例创建和编配数据通道 (data pipelines)。
2026-04-02 06:34:14
373
原创 Nginx URL Rewrite:灵活的 URL 重写与重定向
它常用于静态资源的处理,例如检查文件是否存在,如果不存在,则重写请求到某个页面(通常是首页或错误页面)。Nginx 支持强大的正则表达式匹配功能,可以用来处理更复杂的 URL 重写需求。Nginx 的 **URL 重写(Rewrite)**功能允许你根据请求的 URL 动态地修改请求路径或进行重定向。当请求的文件或页面不存在时,你可能希望将请求重定向到一个自定义的 404 页面或者首页。:新的 URL,符合规则时,Nginx 会将请求的 URL 重写为这个目标。示例:当请求的文件不存在时,重定向到。
2026-04-02 03:18:18
327
原创 【MySql】navicat连接报2013错误
在不同的Linux系统下,my.cnf放在不同的位置。这里以CentOS8 Server做示例,其他系统请根据情况自行找到my.cnf的路径。但是我的配置文件并没有配置这一句,各种搜索均也没有解决问题。但是在别人连接成功的配置文件里发现了一个不同的配置语句。在前面加上#注释掉,然后加入通过键盘的左右键移动到最前面。根据这个错误提示,这是连接初始化阶段就丢失了连接的错误。我们需要通过键盘里的上下键来移动,游标找到。用vim打开配置文件,我的配置文件路径是。查看mysql数据库中所有的表。
2026-04-01 03:12:12
259
原创 python的sql解析库-sqlparse
sqlparse 是一个 Python 库,是一个用于 Python 的非验证 SQL 解析器, 用于解析 SQL 语句并提供一个简单的 API 来访问解析后的 SQL 结构。可以帮助解析复杂的 SQL 查询,提取信息,或者对 SQL 语句进行一些基本的分析和操作。
2026-03-31 03:17:55
174
原创 mysql WITH的多种用法与示例
在一个查询中可以定义多个 CTE,并在查询的其他部分引用它们。这些 CTE 可以相互引用,按顺序处理。WITH非递归 CTE用于分解复杂查询。递归 CTE用于层级数据查询。嵌套 CTE可以组合多个步骤的查询。简化查询逻辑:分解复杂的 SQL 逻辑,使查询更清晰易懂。CTE 是复杂查询中不可或缺的工具,有助于使代码简洁且易于维护。WITH RECURSIVE 举例说明,表结构是id和pid的指向 大概有五层。
2026-03-31 00:05:28
305
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅