- 博客(66)
- 收藏
- 关注
原创 SpringBoot【十一】mybatis-plus实现多数据源配置,开箱即用!
环境说明:Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE正常情况下我们在开发系统的时候都是使用一个数据源,但是由于有些项目同步数据的时候不想造成数据库io消耗压力过大,便会一个项目对应多个数据源,即就会有个问题,Springboot配置db都是默认加载数据源连接,连接池默认配置,但是配置多个数据库url,这该怎么实现呢?
2026-05-03 21:11:11
324
原创 Skywalking介绍,Skywalking 9.4 安装,SpringBoot集成Skywalking
Apache SkyWalking是一个开源的分布式追踪与性能监视平台,特别适用于微服务架构、云原生环境以及基于容器(如Docker、Kubernetes)的应用部署。该项目由吴晟发起,并已加入Apache软件基金会的孵化器,现已成为顶级项目之一。核心特性与功能包括:分布式追踪:提供从终端用户请求到后端服务的完整调用链路视图,帮助开发者快速定位分布式系统中的性能瓶颈和错误根源。性能监控:收集并分析服务及服务间调用的性能指标,如响应时间、吞吐量、错误率等,支持服务级和接口级的监控。服务网格观测。
2026-05-03 19:37:23
364
原创 Nginx多域名,多证书,多服务配置,实用版
现在有一个项目,有测试环境和正式环境,已经为两个环境各自申请到域名和ssl证书正式环境xxx.com和和测试环境和和目前想要通过Nginx他们配置到同一台服务器上,要求如下实现http重定向到https添加域名和证书目前已经在服务器上将nginx安装到,并且已经为nginx创建了系统命令目录主要内容如下- conf- sbin- nginxnginx已经编译了ssl相关依赖。
2026-05-03 18:06:13
49
原创 MySQL--》如何通过选择合适的存储引擎提高查询效率?
存储引擎:就是存储数据、建立索引、更新/查询数据等技术的实现方式,存储引擎是基于表的而不是基于库的,所以存储引擎也可以被称为表类型,我们可以通过如下查询表的创建语句,可以看到当前创建的表的存储引擎是什么?我们可以通过 show engines;语句查询当前数据库支持的存储引擎有哪些,如下所示:create table 表名 (字段1 字段1类型...
2026-05-03 16:36:04
336
原创 Java 进阶:如何让线程主动让出 CPU
suspend 挂起线程,并不会释放锁,又不像 sleep 那样一段时间后自动恢复,所以容易引起死锁。wait 会把当前持有的锁释放掉同时阻塞住,让出 CPU。当其他线程调用 Object.notify/notifyAll 时,会被唤醒,可能得到 CPU,并且获得锁。yield 也可以让线程主动让出 CPU,然后和其他线程一起竞争 CPU,但是调度器也可以忽略 yield。,直接停止线程,同时会释放所有锁,太过暴力,容易导致数据不一致。sleep 方法可以让线程主动让出 CPU,但是并不会释放锁。
2026-05-03 15:04:07
37
原创 MySQL中between and的基本用法、范围查询
是支持数值查询的,当字段类型是数值时 between A and B等同于>=A and <=B。not between and表示指定范围之外的值。not between A and B相当于 < A or >B。从上面示例可以看出,还有两条数据时间是在2024-10-30日范围内,但是并没有被查询出来。当between and用于数值查询时,常用于字段类型为int、decimal等。当查询时间范围时要注意可能会遇到时间精度问题,具体参考下面示例。示例:查询年龄不在24到25之间的用户。
2026-05-02 21:52:16
193
原创 LangChain-09 Query SQL DB With RUN GPT 查询数据库 并 执行SQL 返回结果
【代码】LangChain-09 Query SQL DB With RUN GPT 查询数据库 并 执行SQL 返回结果。
2026-05-02 20:41:06
27
原创 docker下搭建redis集群
准备好Linux系统机器,并安装好docker,阅读这篇文章前请先了解清楚docker的基本知识并且会熟悉运用docker的常用命令。创建7000节点配置文件后将它复制到其他节点目录下,注意复制到其他目录需要将配置文件的port改为该节点的端口号。此时我们已经创建好了所有节点,但各个节点还是相互独立的,我们需要将他们整合成集群,执行以下命令建立集群。安装好后再执行 docker images命令,查看到redis6.0.6镜像则安装成功。接下来就可以创建每个节点的docker容器,以7000节点为例。
2026-05-02 19:25:17
336
原创 MySQL数据库(SQL分类)
insert into employee values (3,‘3’,‘tong’,‘女’,20,123456789456723123,‘2025-05-06’),(4,‘4’,‘miaomiao’,‘女’,20,145456789456789123,‘2024-05-06’);1.delete语句的条件为可选项,如果没有,会删除表中的所有数据。数据控制语言,用来创建数据库用户,控制数据库的访问权限。数据定义语言,用来定义数据库对象(数据库,表,字段)数据操作语言,用来对数据库表中的数据进行增删改。
2026-05-01 19:52:17
332
原创 MySQL--》理解锁机制中的并发控制与优化策略
锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中除了传统的计算机资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源,如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素,从这个角度来说锁对数据库而已尤为重要也更加复杂。按照锁的粒度细分,对于MySQL中的锁主要分为以下三类:1)全局锁:锁定数据库中的所有表2)表级锁:每次操作锁住整张表3)行级锁:每次操作锁住对应的行数据。
2026-05-01 19:02:59
334
原创 MacOS升级ruby版本
但是如果我们使用“ruby -v”查看版本,发现使用的还是MacOS自带ruby版本是2.x。homebrew安装的ruby版本号可以通过“brew info ruby”命令参看。MacOS自带ruby版本是2.x,可以通过“ruby -v”查看版本号。如果没有安装,可以“brew install ruby”进行安装。或者通过“brew install ruby”进行升级。再次使用“ruby -v”查看一下版本。
2026-05-01 18:12:22
27
原创 Java自学路线图之Java进阶自学
说句实话,如果一个打工人不想提升自己,那便没有工作的意义,毕竟大家也没有到养老的年龄。当你的技术在一步步贴近阿里p7水平的时候,毫无疑问你的薪资肯定会涨,同时你能学到更多更深的技术,交结到更厉害的大牛。
2026-05-01 17:22:41
198
原创 docker下搭建redis集群
准备好Linux系统机器,并安装好docker,阅读这篇文章前请先了解清楚docker的基本知识并且会熟悉运用docker的常用命令。创建7000节点配置文件后将它复制到其他节点目录下,注意复制到其他目录需要将配置文件的port改为该节点的端口号。此时我们已经创建好了所有节点,但各个节点还是相互独立的,我们需要将他们整合成集群,执行以下命令建立集群。安装好后再执行 docker images命令,查看到redis6.0.6镜像则安装成功。接下来就可以创建每个节点的docker容器,以7000节点为例。
2026-05-01 15:41:16
442
原创 如何查看PostgreSQL的版本
如果你使用 pgAdmin 这样的图形界面工具来管理你的 PostgreSQL 数据库,你也可以在此工具中查看版本信息。(PostgreSQL 的命令行界面) 的版本,通常这与 PostgreSQL 服务器的版本相匹配。要查看 PostgreSQL 的版本,有几种不同的方法可以使用,包括通过命令行和 SQL 查询。这将返回一个字符串,包含 PostgreSQL 的版本以及构建时的一些系统信息。选择上述方法中最适合你的场景的一种来查看 PostgreSQL 的版本。
2026-04-22 13:04:38
64
原创 创建Spring Initializr项目
3.为了便于查询JSON数据,隐藏没有值的属性,减少流量的消耗,服务器不应该向客户端响应为NULL的属性。可以在属性或类之前添加@JsonInclude(value=Include.NON_NULL),也可以在application.properties中添加全局的配置。2.在IDEA欢迎界面,点击【New Project】按钮创建项目,左侧选择【Spring Initializr】选项进行Spring Boot项目快速构建。点击【Next】按钮完成项目创建。完成以上操作即可开些编写代码。
2026-04-22 12:11:44
259
原创 MySQL不使用子查询的原因
这些案例展示了如何通过不同优化策略提升MySQL查询性能,特别是在处理子查询时。创建合适的索引:经常用于WHERE和JOIN的字段应建立索引,避免在低选择性的字段上建立索引(如性别字段)。避免索引失效的情况:使用函数计算的字段不会使用索引,如应优化为。组合索引的最左前缀法则:确保查询条件从组合索引的最左列开始。使用EXPLAIN分析查询执行计划:通过EXPLAIN关键字可以帮助我们了解查询的执行计划,从而发现性能瓶颈。优化查询语句:避免使用SELECT *,使用LIMIT。
2026-04-22 03:40:11
183
原创 knife4j+springboot3.4异常无法正确展示文档
通过分析异常日志发现是ControllerAdviceBean类报错,在springboot3.3.5时spring-web版本是6.1.14,springboot3.4版本是6.2.0版本。结论:期待knife4j-openapi3-jakarta-spring-boot-starter早日升级,兼容最新版本的spring;knife4j-openapi3-jakarta-spring-boot-starter版本。原来使用springboot3.3.5版本,先升级到3.4.0版本。
2026-04-22 02:12:20
340
原创 docker 安装 mysql
v /etc/localtime:/etc/localtime:ro:让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读。-v /usr/local/mysql/data:/var/lib/mysql:映射数据目录,宿主机:容器。-v /usr/local/mysql/log:/var/log/mysql:映射日志目录,宿主机:容器。-v /usr/local/mysql/conf:/etc/mysql:映射配置目录,宿主机:容器。将代码粘贴到脚本文件。
2026-04-22 00:44:28
341
原创 SQL中字符串截取函数(substring)
select substr(‘重庆沙坪坝兰溪谷地’,1,char_length(‘重庆沙坪坝兰溪谷地’)-3)select substring(‘重庆沙坪坝兰溪谷地’,-4,2)select substring(‘重庆沙坪坝兰溪谷地’,5,3)select substring(‘重庆沙坪坝兰溪谷地’,-4)select substring(‘重庆沙坪坝兰溪谷地’,3)
2026-04-21 11:08:30
153
原创 springboot3.X 无法解析parameter参数问题
使用最新版的Springboot 3.2.1(我使用3.2.0)搭建开发环境进行开发,调用接口时出现奇怪的错。
2026-04-21 08:47:29
300
原创 Redis和Redis-Desktop-Manager的下载、安装与使用
3、配置环境变量:高级系统设置 => 环境变量 => 系统变量 => path。6、Redis-Desktop-Manager连接Redis(在连接时需要先。2、将下载好的压缩包解压即可【Redis-x64-3.2.100.zip】(3)点击Browse更换安装位置,点击Install。5、安装Redis-Desktop-Manager。4、在命令行输入:redis-server 命令。(2)点击【I Agree】(1)点击Next下一步。(5)点击Finish。
2026-04-21 06:30:05
881
原创 mysql用户名怎么看
要查看 mysql 中的用户名,可以使用以下方法:使用 show databases 命令查看数据库拥有者信息;查看 /etc/mysql/my.cnf 或 /etc/my.cnf 文件中的 user 或 username 选项。在 /etc/mysql/my.cnf 或 /etc/my.cnf 文件中查找 user 或 username 选项。它将显示 MySQL 用户名。这将显示正在运行的 MySQL 进程,并且用户名将显示在命令行中。这将显示当前登录操作系统的用户名,也是 MySQL 用户名。
2026-04-21 04:11:24
102
原创 Java面向对象(进阶)
其优点在于他可以隐藏私有数据,让使用者只能通过公共的访问方法来访问这些字段,有利于限制对数据的不合理访问,保护对象信息的完整性。Java接口时一系列方法的声明,是一些方法特征的集合。一个接口只有方法的特征而没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。抽象类是它的所有子类的公共属性的集合,是包含一个或多个抽象方法的类。Java继承是一种使用已存在的类的定义作为基础去建立新类的技术,新类的定义可以增加新的数据或新的功能,也能使用父类的功能。
2026-04-21 01:55:15
176
原创 【MySQL】MySQL函数之JSON_EXTRACT
在 MySQL 中,函数用于从 JSON 文档中提取一个或多个值。这个函数非常有用,特别是在处理存储在 JSON 格式中的复杂数据时。下面是一些关于如何使用的详细说明和示例。
2026-04-19 20:22:19
210
原创 SpringSecurity 实现token 认证
Autowired@Override//1、获取请求头携带的tokenif(!//不需要token的路由可以直接放行return;response.getWriter().write(JSON.toJSONString(Result.failed(401,"token 非法","")));return;//放行。
2026-04-19 17:35:17
171
原创 Spring Data 什么是Spring Data 理解
Spring Data的使命是为数据访问提供熟悉且一致的基于Spring的编程模型,同时仍保留底层数据存储的特殊特性。它使数据访问技术,关系数据库和非关系数据库,map-reduce框架和基于云的数据服务变得简单易用。这是一个伞形项目,其中包含许多特定于给定数据库的子项目。这些项目是通过与这些激动人心的技术背后的许多公司和开发人员合作开发的。: 致力于减少数据访问层(DAO)的开发量。开发者唯一要做的,就只是声明持久层的接口,其他都交给Spring Data JPA 来帮你完成!
2026-04-19 14:56:07
212
原创 PHP搭建开发环境(Windows系统)
要搭建一个完整的PHP动态网站,离不开操作系统、Web服务器、数据库、和PHP软件。虽然有不错方便的方式,比如使用phpstudio等等等等许多面板都是非常快速不错的方式,但是这里是教会大家如何配置而不只是依赖别人整合好的面板软件,有时就会发挥出用处。以下是本文章的所采用的大概配置。
2026-04-19 12:05:49
345
原创 MySQL——内置函数
在date中添加日期或时间,interval后的数值单位可以是:year、minute、second、day。:在date中减去日期或时间,interval后的数值单位可以是:year、minute、second、day。:返回substring在string中出现的位置,没有返回0。:如果val1为null,返回val2,否则返回val1的值。:从str的postion开始,取length个字符。:从string中的左边起取length个字符。:显示当前正在使用的数据库。:两个日期的差,单位是天。
2026-04-19 03:36:41
153
原创 搞定mysql的 行转列(7种方法) 和 列转行
一、行转列1、使用case…when…then2、使用SUM(IF()) 生成列3、使用SUM(IF()) 生成列 + WITH ROLLUP 生成汇总行4、使用SUM(IF()) 生成列,直接生成汇总结果,不再利用子查询5、使用SUM(IF()) 生成列 + UNION 生成汇总行,并利用 IFNULL将汇总行标题显示为 Total6、动态查询列值不确定的情况7、合并字段显示:group_concat()二、列转行————————————————即将原本同一列下多行的不同内容作为多个字段,输出对应内容。
2026-04-18 06:54:41
326
原创 【细如狗】记录一次使用MySQL的Binlog进行数据回滚的完整流程
这次事情的起因也是因为一次编写代码的粗心造成的,虽然造成的影响不太好,但是解决问题的过程也挺有趣的。如果还有别的好方案的话,欢迎在评论区分享。
2026-04-18 04:31:04
224
原创 windows10安装redis数据库,并设置开机自启动
windows安装redis是很简单,属于开箱即用的。下载安装包,将安装包解压后,启动服务端,启动客户端就可以操作了。
2026-04-18 02:07:15
261
原创 Python高级之操作Mysql
PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2 中则使用 mysqldb。PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL。使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。执行以上代码,如果没有产生错误,表明安装成功。来连接使用 MySQL,本章节为大家介绍使用。
2026-04-04 04:19:36
51
原创 MYSQL 创建索引
第一次使用删除语句报错的原因是:由于自增列的错误,所以下面是先删除了自增属性,然后重新删除主键。创建唯一索引的方式有三种,和上面添加主键索引大致上是相同的,故只给出对应的代码部分。创建符合索引与创建普通索引语法相同,只不过是指定多个列,列与列之间用逗号隔开。其中:主键索引用PRI表示,唯一索引用UMI表示,普通索引用MUL表示。普通索引的三种创建方式和上面两种差不多,不过还是有一些不同的。查看索引的三种方式,在上面都有提到,现在可以进行一下总结。index 是创建索引的关键字,括号里是索引列。
2026-04-04 01:19:26
248
原创 SQL Server导出和导入可选的数据库表和数据,以sql脚本形式
3. 如果只需要导出部分表,则选择第二项**“选择具体的数据库对象(Select specific database objects)”**,并勾选表;1. 打开SQL Server Management Studio,在需要导出表的数据库上单击右键 → 任务 → 生成脚本。1. 如果导出的脚本文件较小,可以直接双击文件,在SQL Server Management Studio里执行。如果同时需要导出表结构和数据,就从右上角的**“高级(Advanced)”5. 之后,连续点击下一步,直到完成。
2026-04-02 09:33:13
193
原创 Spring Boot实现多数据源连接和切换
在 Spring Boot 中实现多数据源连接和切换,可以通过以下几种方案来实现,具体取决于项目的需求、数据库的使用模式和管理的复杂性。以下是一个常见的多数据源切换的实现方案,使用 AbstractRoutingDataSource 来动态选择数据源。创建一个自定义注解,用于指定当前方法执行时需要使用的数据源。// 数据源标识,默认使用primary数据源数据源配置:为每个数据源配置DataSourceBean。动态数据源路由:使用来实现动态切换数据源。ThreadLocal存储:使用。
2026-04-02 06:18:08
216
原创 MySQL远程连接错误解决:“Host is not allowed to connect to this MySQL server”详解
用户的host字段(或其他需要远程访问的用户),允许任意远程主机(用 ‘%’ 表示)进行连接,但这一步可能涉及到安全风险,建议只针对需要远程访问的特定用户设置具体的远程IP地址,而不是使用通配符。通过远程客户端访问MySQL服务器时会遇到“Host is not allowed to connect to this MySQL server”的错误提示。确保服务器的防火墙规则允许MySQL服务端口(默认为3306)上的入站流量。或者指定的公网IP地址以接受远程连接。),确保没有禁止远程连接的相关设置,
2026-04-02 03:01:53
92
原创 【MySQL】详解数据库约束、聚合查询和联合查询
需要满足:使用 GROUP BY 进行分组查询时,SELECT 指定的字段必须是“分组依据字段”,其他字段若想出现在SELECT 中则必须包含在聚合函数中。在实际应用中,为了合并多个select的执行结果,可以使用集合操作符 union,union all。使用UNION和UNION ALL时,前后查询的结果集中,字段需要一致。GROUP BY 子句进行分组以后,需要对分组结果再进行条件过滤时,不能使用 WHERE 语句,而需要用HAVING。实际开发中往往数据来自不同的表,所以需要多表联合查询。
2026-04-01 03:26:48
209
原创 SpringBoot连接多数据源MySQL、SqlServer等(MyBatisPlus测试)
经过上述演示,我们已经实现了在springboot项目中实现多数据库源的连接和操作,如果需要使用不同数据库,按照上述操作思路即可实现。
2026-04-01 00:19:40
416
原创 Redis 设置密码(配置文件、docker容器、命令行3种场景)
注意:通过命令设置密码后,为了防止下次服务重启后又变成没有密码,请注意配合以上 1、2 两种方式在服务重启后配置对应的密码。以上两种方法,都需要重启服务,如果是某些环境需求不允许停机 redis,则我们可以通过。或者直接使用 redis 桌面客户端工具连接 redis 后进入客户端命令行。如果你本地没有默认的 redis.conf 配置文件,可以从。来为 redis 设置密码,配置完后需要重启方可生效。如果 redis 是 docker 容器,可以使用命令。通过修改 redis.conf 配置文件中的。
2026-03-31 03:32:45
263
原创 MySQL 数据增删改查
PS:连接查询涉及到两个表以上,在查询的时候至少要有一个必备的连接条件,这个必备的条件就是两个表共有的那个字段相等,而且这个字段一定在一个表里是主键,在另一个表里是外健。PS:左连接和右连接就是分别以表1和表2为基表,返回左(右)表中所有记录及连接表中符合条件的记录的外连接。PS:ASC是降序,DESC是升序,在不写明是ASC还是DESC的情况下,默认是ASC降序。连接查询是将多张表中记录按照指定的条件进行连接的查询方式。定义:子查询是在一个查询的内部包括另一个查询的查询方式。如何查看班级同学的平均身高?
2026-03-31 00:20:26
415
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅