- 博客(62)
- 收藏
- 关注
原创 Vanna AI:告别代码,用自然语言轻松查询数据库,领先的RAG2SQL技术让结果更智能、更精准!
Vanna,是一款革命性的AI SQL智能体,可以将复杂的SQL查询简化为日常语义对话。在生成式AI的助力下,Vanna 让数据库查询变得前所未有的简单和直观。它是基于 OpenAI 和 Google 提供的大语言模型(LLM)。Vanna 通过预训练模型,结合你的数据库进行微调,可以快速帮你量身打造一个定制化的AI助手。Vanna 是一个获得 MIT 许可的开源 Python RAG(检索增强生成)框架,用于 SQL 生成和相关功能。GitHub 已经高达7200 颗星??
2026-03-28 11:35:58
265
原创 Spring Boot(七):Swagger 接口文档
Swagger 是一款 RESTful 风格的接口文档在线自动生成 + 功能测试功能软件。Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。目标是使客户端和文件系统作为服务器以同样的速度(同步)更新文件的方法,参数和模型紧密集成到服务器。这个解释简单点来讲就是说,Swagger 是一款可以根据 resutful 风格生成的接口开发文档,API 文档与 API 同步更新,并且支持做测试的一款中间软件。
2026-03-28 00:29:37
413
原创 mysql数据被误删的恢复方案
STATEMENT: 表示使用语句模式(statement-based replication),在这种模式下,可能会丢失一些数据,因为它仅记录执行的SQL语句。ROW: 表示使用行模式(row-based replication),这是推荐的设置,因为它提供了更好的数据一致性。数据误删是一个严重的数据库管理问题,但通过合理的备份策略和使用适当的恢复工具,可以有效地减少数据丢失的风险。如果log_bin的值为ON,则表示binlog已经开启;数据丢失:只能恢复到最后一次备份的时间点,之后的数据无法恢复。
2026-03-27 12:26:39
316
原创 Spring中的IOC详解
单例Bean和多实例Bean的生命周期主要区别在于实例化和销毁的管理方式,单例Bean在容器启动时创建一个实例,并由容器负责管理其生命周期的完整过程。在Spring框架中,Bean是应用程序的核心组件,它们由Spring容器创建、组装和管理,以帮助开发者实现松耦合、可测试和可维护的代码。IOC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。Bean的自动装配是Spring框架提供的一种便捷的方式,用于自动解析和设置Bean之间的依赖关系,而无需显式配置每一个依赖关系的方式。
2026-03-26 17:08:53
364
原创 SpringCloud 整合 Dubbo
Dubbo有两种使用方式:1、基于SOA的思想,将一个单体架构拆分为web层和Services层,然后web和services借助Dubbo框架进行数据交互。2、SpringCloud 整合Dubbo。这篇博客所要介绍的就是第二种。首先我们要想,为什么SpringCloud 要整合Dubbo在SpringCloud中会有多个微服务,不同的微服务访问一样的数据库,每个微服务都需要进行服务注册和服务发现,这个时候就要用到注册中心Nacos。
2026-03-26 16:47:58
217
原创 Springboot中使用Elasticsearch(部署+使用+讲解 最完整)
这里只做演示和介绍,如果只需要了解在Java中使用可跳过,去看第四部分,但是这些还是很有必要了解一下。Docs。
2026-03-26 13:15:15
394
原创 spring session、spring security和redis整合的简单使用
通过user进行登录,再次查看redis,我们可以发现先前的sessionId改变了,同时还多出了一条数据"spring:session:index:org.springframework.session.FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME:user",这条数据就是我们刚登陆的user。点击Log Out退出登录,然后再出查看redis,我们会发现之间的增加的那条用户数据不见了。访问SessionController中的。
2026-03-26 12:19:57
198
原创 Spring Boot spring.factories文件详细说明
spring.factories 文件是 Spring Boot 自动配置机制的核心部分之一。它位于每个 Spring Boot 自动配置模块的 META-INF 目录下,用于声明该模块提供的自动配置类、条件性配置类、环境后处理器等。以下是对 spring.factories 文件的详细说明:相信大家的项目中都会写starter,我们团队写的国际化通用和通用聚合服务等即插即用的功能包,就是用的starter。
2026-03-26 11:23:05
363
原创 SpringBoot集成Prometheus
现在2.3.0.RELEASE和1.5.4.RELEASE版本的服务,都可以成功暴露出一个给Prometheus拉取指标的接口,只需要在Prometheus上进行配置即可在Prometheus WEB UI上看到效果。但生产环境的真实情况,不可能只收集一个服务的指标,是否再需要一个代理服务,该服务用来收集所有微服务的指标后,再统一暴露接口给Prometheus,需要再根据生产环境使用情况考虑。启动服务后,访问/actuator/prometheus接口,可以看到Micrometer替我们收集到的指标。
2026-03-25 23:33:56
306
原创 SpringBoot3 整合 Mybatis 完整版
成功,至此,已经完成了 SpringBoot3 整合 Mybatis 的步骤。在 application.yaml 文件中添加mybatis的相关配置。当不指定 依赖版本的时候,会 由 springboot 自动管理。在 application.yaml 文件中添加数据源的信息。第三方的依赖库,需要明确的指定版本号。推荐使用最新的即可。结合表结构,创建普通的一个bean类。包含了普通属性,标准的下划线属性。, 指定要扫描的 mapper 接口的包路径。先写上吧,没有副作用。在 项目的 启动类上添加注解。
2026-03-25 22:49:13
50
原创 Spring Boot(七):Swagger 接口文档
Swagger 是一款 RESTful 风格的接口文档在线自动生成 + 功能测试功能软件。Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。目标是使客户端和文件系统作为服务器以同样的速度(同步)更新文件的方法,参数和模型紧密集成到服务器。这个解释简单点来讲就是说,Swagger 是一款可以根据 resutful 风格生成的接口开发文档,API 文档与 API 同步更新,并且支持做测试的一款中间软件。
2026-03-25 22:05:11
410
原创 Spring Boot+Vue项目从零入手
1、创建Springboot项目,勾选Lombok(简化java代码的插件)、web——Spring Web(相当于SpringMVC)、sql——MyBatis Framework+MySql Driver。再配置tomcat的地方点+,选择npm,下方选择vue的package.json,下方run的下一格写serve。创建好项目后先启动,确认项目可以正常运行,再将vue整个拖入Springboot项目中。1.打开cmd窗口,进入准备建立vue项目的文件夹,通过。检测安装成功的方法:vue -V。
2026-03-25 16:41:51
252
原创 RabbitMQ 的介绍与使用
消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。其主要用途:不同进程Process/线程Thread之间通信。那么为什么会产生消息队列呢?有几个原因:不同进程(process)之间传递消息时,两个进程之间耦合程度过高,改动一个进程,引发必须修改另一个进程,为了隔离这两个进程,在两进程间抽离出一层(一个模块),所有两进程之间传递的消息,都必须通过消息队列来传递,单独修改某一个进程,不会影响另一个;
2026-03-25 15:27:55
347
原创 基于SpringBoot和PostGIS的省域“地理难抵点(最纵深处)”检索及可视化实践
最近看到一个有趣的内容,就是求解一个Polygon的地理难抵点以及其空间范围。地理难抵点(Pole of Inaccessibility)是指在一个多边形区域内,距离周边边界的最远点。这一概念在地理学、城市规划、资源勘探等领域具有重要意义。例如,在城市规划中,了解一个区域的难抵点有助于评估该区域的可达性和开发潜力;在资源勘探中,难抵点的确定可以帮助确定资源开发的最佳位置。因此,对省域“地理难抵点”的研究具有重要的理论和实践价值。下图是我国上海市、山东省、河南省等6个省的地理难抵点的空间分析结果拼图。
2026-03-24 23:27:02
420
原创 MySQL 数据出海之数据同步方案
由于上云项目涉及的应用和开发组非常多,大家对公有云的运维经验较少,上线初期出现问题的几率较高,解决问题的速度也可能比较慢,无法将流量回切上海,带来的风险和影响较大。:数据迁移的操作,是需要一定的时间才能完成的,而在这一段时间内,可能有用户写入新数据或者修改数据,若修改时间点正好是这条数据已经完成迁移但又在流量切换之前,导致。数据同步是同步所有的海外数据,不依赖与流量切换的分批维度,可以直接使用公司通用的数据同步工具,避免缺点2的问题。双向数据同步可能产生数据冲突,必须对数据写入逻辑进行严格控制,避免冲突。
2026-03-18 03:33:30
238
原创 IDEA+Docker一键部署项目SpringBoot项目
接着需要编写一个用于定义和构建 Docker 镜像的文本文件,文件名为 Dockerfile,Dockerfile 中的配置可根据自身项目情况进行调整。在设置中找到 Docker,点击 +,选择以 SSH 方法连接到 Docker 守护进程,接着点击下拉列表,选择刚才创建的 SSH 配置。如果你点击小三角后部署失败,并且 IDEA 给出了以下提示,可能是因为 SSH 配置中的用户并没有连接 Docker 的权限。点击 +,创建一个新的 SSH 连接,填入主机、用户名和密码后点击测试连接。
2026-03-18 01:09:38
196
原创 springBoot发布https服务及调用
(2)CA 签名证书:对于生产环境,应该使用由受信任的证书颁发机构 (CA) 签名的证书。(1)自签名证书:如果你只是用于开发或测试环境,可以生成一个自签名证书。feign接口的地址还是正常配置http或https都支持。你需要提供一些信息,如组织名称等。注意记住密码和别名。这将创建一个有效期为 10 年的自签名证书,并将其存储在。启动服务即可通过https访问了,默认可以设置成false。把证书放在ssl目录下。
2026-03-17 16:17:04
46
原创 Spring Boot 排除自动配置
Spring Boot 自动配置非常强大,有时需要排除/禁用 Spring Boot 某些类的自动化配置。当自动配置类不在类路径下时,使用。
2026-03-17 13:54:51
182
原创 mysql的分区表
---------------分割线-------------------------------下面以时间范围进行创建(每月一个分区,表中创建了四个月的分区)2、写存储过程,用于创建新的分区, 这里是按天创建新的分区。【针对mysql,使用mysql的定时事件】3、创建定时事件,调用存储过程。4、查看已经创建的定时事件。2、mapper文件。
2026-03-17 05:05:41
24
原创 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-03-17 02:27:50
280
原创 彻底解决 `ModuleNotFoundError No module named ‘MySQLdb‘` 这个错误
提示:确认你不是在尝试安装 `MySQLdb`,这个库只兼容 Python 2。-对于 Python 3,选择 `mysqlclient` 或 `PyMySQL` 作为替代。它们都是与 `MySQLdb` 类似,但兼容 Python 3 的库。这样可以在未修改大量现有代码的情况下,确保它们可以使用 `PyMySQL` 作为 `MySQLdb` 的替代。python项目启动时报错,但是mysql相关的驱动都已经安装,mysqlclient、pymysql等。
2026-03-15 13:08:09
25
原创 启动nginx报错nginx [emerg] bind() to 0.0.0.080 failed (98 Address already in use)
拒绝显示别名,能显示数字的全部转化成数字,(tcp)仅显示tcp相关选项,显示建立相关链接的程序名,仅列出有在 Listen (监听) 的服務状态。一开始以为是端口被占用,停掉对应的端口进程就行了,于是挨个停一遍。然后停掉对应的进程,注意 PID 列才是对应的进程id。完了发现不对啊,并没有作用,启动还是报这个错。那看看网络相关的端口,使用如下命令查找。使用 PID 列下的进程id停掉进程。可以看到这几个端口都是同一个进程。使用如下命令查看对应占用进程端口。那看看80端口跑了什么。
2026-03-15 11:59:56
183
原创 一个基于Spring Boot的简单网吧管理系统
一个基于Spring Boot的简单网吧管理系统的案例代码。这个系统包括用户管理、电脑管理、上机记录管理等功能。代码结构清晰,适合初学者学习和参考。
2026-03-15 10:51:16
71
原创 【MySQL】超详细MySQL常用日期格式转换函数、字符串函数、聚合函数(最新版)
周 (01-53) 星期日是一周的第一天,与 %X 使用。周 (01-53) 星期一是一周的第一天,与 %x 使用。年,其中的星期日是周的第一天,4 位,与 %V 使用。年,其中的星期一是周的第一天,4 位,与 %v 使用。周 (00-53) 星期日是一周的第一天。周 (00-53) 星期一是一周的第一天。带有英文前缀的月中的天(如:7th)月的天,数值(00-31)年的天 (001-366)年,4 位(如:2024)月的天,数值(0-31)分钟,数值(00-59)月,数值(00-12)
2026-03-15 04:23:18
347
原创 SQL Server 数据库管理工具的安装以及使用
在登陆界面我,我们看到,会要求我们选择服务器类型(选择数据库引擎),服务器名称(选择你电脑的名称,或者输入localhost),身份验证方式(可选择Windows身份验证(本地登录)或者SQL Server 身份验证(远程登陆)),登录名(选择Windows身份验证时不需要输入,SQL Server 身份验证时需要输入,一般初次登录用sa账户),密码(你自己创建的用户密码,一般初次登录用sa账户和密码) ,登录成功后可看到进入如下界面。
2026-03-15 01:51:21
236
原创 redis的下载和安装详解
这样只需要在本机上操作者两个目录中的内容,就可以直接同步修改docker容器中对应的目录中的内容。而使用数据卷挂载,docker会自动维护目录,但是目录比较深。docker镜像中的redis默认都是没有配置文件的,也就是说/etc/redis目录下是空的。:将宿主机端口和容器端口相关联,是指可以用宿主机的6379端口访问容器的6379端口。之所以这里创建目录,是想使用docker数据卷挂载的第二种方式,直接使用磁盘挂载。意思就是不使用数据卷,直接把本机的某个目录和docker容器中的某个目录进行关联。
2026-03-14 11:54:28
351
原创 PHP使用CURL发送POST请求方法总结(API对接必备)
java RSA2 加密、解密 、签名和验证签名 https://blog.youkuaiyun.com/TaLinBoy/article/details/106124535。IOS:RSA2 加密、解密 、签名和验证签名 https://blog.youkuaiyun.com/TaLinBoy/article/details/106140526。详细请参考:https://blog.youkuaiyun.com/guyongqiangx/article/details/74930951。而验证签名使用的是公钥。// 对认证证书来源的检查。
2026-03-14 10:41:27
291
原创 MySQL:顿悟了,添加索引时竟然不锁表?
在 MySQL 数据库中,“锁表” 指的是对数据库表进行锁定,以控制对表中数据的并发访问。锁表是数据库管理系统(DBMS)用来维护数据一致性和完整性的一种机制。当某个事务(Transaction)或操作需要对表中的数据进行修改(如 INSERT、UPDATE、DELETE)时,它可能会请求锁定该表或表的一部分,以防止其他事务同时访问或修改相同的数据,从而导致数据不一致或冲突。那么,在创建索引时一定会锁表吗?
2026-03-14 03:21:42
206
原创 MySQL下载安装及配置
4. 在MySQLmysql-9.1.0-winx64文件夹的根目录下,新建一个my.ini文件,把下面内容复制到文件中,保存。1.官网下载https://dev.mysql.com/downloads/mysql/3.把下载文件打开,进入到bin文件中,将文件路径复制到系统变量path中。5. 注册服务,cmd窗口输入:mysqld --install。6.启动服务:net start mysql。停止服务:netstop mysql。
2026-03-14 02:06:32
254
原创 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-03-14 00:52:14
241
原创 HDFS的架构优势与基本操作
如今,数据正以指数级增长,各行各业都在追求更多的数据存储、高效的数据处理和可靠的数据基础来驱动业务的发展。Hadoop Distributed File System(HDFS)作为Hadoop生态系统的核心组件之一,成为构建可靠的大数据基础的不二选择之一。本文将深入剖析HDFS的架构与优势。HDFS(Hadoop分布式文件系统)是Apache Hadoop框架的一部分,设计用于存储和处理大规模数据集的分布式文件系统。HDFS产生的背景主要是为了满足处理大规模数据的需求。
2026-03-13 23:24:44
343
原创 【Sql Server】使用row_number over方式进行表分页,数据量达到五千多条记录后,查询变慢需要20多秒的解决方案
最近创建了一张表,用于保存名称相关信息。刚开始是没有加任何索引,数据不多时查询也没什么问题。等到了表有5千多条记录后,查询变得很慢,设置需要二十多秒。一起来看下这个博主是如何解决的?或者你们是否有更好的解决方案呢?也欢迎评论区留言。
2026-03-13 19:34:21
402
原创 记录 idea 启动 tomcat 控制台输出乱码问题解决
打开 tomcat 的 Edit Configurations 页面。确保 tomcat 的配置中编码设置正确。如果以上还不能解决问题,尝试以下两种方案。运行 tomcat 后,控制台输出乱码。若 3 不行,尝试第四种解决方案。
2026-03-13 03:40:42
260
原创 在Mysql环境下对数据进行增删改查
右外连接:select 字段 from 表名1 right join 表名2 on 两个表连接的条件 [where 条件];左外连接:select 字段 from 表名1 left join 表名2 on 两个表连接的条件 [where 条件];隐式内连接:select 字段 from 表名1,表名2 where 两个表连接的条件 [and 其他查询的条件];------------根据条件进行删除表里的数据。----------% _---------清空表里的数据,但表仍然存在,而且不能加条件。
2026-03-13 00:57:48
233
原创 SQL注入(SQL Injection)攻击原理与防御措施
SQL是一种代码注入技术,可使攻击者修改应用程序向数据库提供的查询。迄今为止,最常见和最严重的应用 程序安全威胁总是隐藏在与数据库有某些连接的网络应用 程序中。通过这种 SQL 注入,攻击者可以绕过登录程序,获取、更改甚至更新数据库,执行管理程序,或进行其他变种操作。要解释什么 是 SQL 注入,就必须了解 SQL 的一些基本原理。事实上,它已成为处理和虚拟操作这些数据库的通用语言。它用于查询、插入、更新和删除数据库记录,几乎所有网络应用程序都使用它来访问数据库;
2026-03-12 08:45:29
238
原创 redis密码设置
当你设置完密码以后,你再重新查看密码会报错这个意思是要你重新启动redis服务,redis-server和redis-cli都要重新启动。这里你查看密码他会报错,因为你还没有输入密码接下来命令auth 你的密码就是登录,登录成功以后就可以操作了。因为每次都是重启服务,你没有指定配置文件就会按默认配置文件加载,所以下一次是没有密码了。1.重启服务,先启动server服务,一定要在指定配置文件不然不会生效。当我们重新启动以后当你查看密码时你会发现你自己设置的密码没有了。2.然后启动cli服务。
2026-03-11 19:46:24
42
原创 Nginx代理到https地址忽略证书验证配置
当proxy_ssl_server_name设置为on时,Nginx会在与后端服务器建立SSL/TLS连接时,使用请求头中的Host字段值作为SNI(Server Name Indication)的一部分。这意味着每次Nginx与后端服务器建立连接时,都会进行完整的SSL/TLS握手过程,这可能会增加延迟和服务器负载。如果proxy_ssl_server_name未设置或设置为off,Nginx将不会使用Host头部值作为SNI的一部分,这可能会导致SSL/TLS握手失败,特别是当后端服务器期望SNI时。
2026-03-11 01:28:31
232
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅