当前位置: 首页 > news >正文

Mysql之存储过程

🏝️专栏:Mysql_猫咪-9527的博客-CSDN博客
🌅主页:猫咪-9527-CSDN博客 

“欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。

目录

1.存储过程概述

2.存储过程的基本语法

2.1创建存储过程

2.2调用存储过程 

2.3查看存储过程信息

2.4查看存储过程定义

2.5删除存储过程

3.变量

3.1查看系统变量

3.1.1查看所有系统变量

3.1.2系统变量的模糊匹配

 3.1.3查看指定变量

 3.2设置全局变量vs设置当前(会话)变量

设置全局隔离级别 

 设置当前会话的隔离级别:

总结: 

 3.3用户定义变量

3.4局部变量

3.4.1.局部变量的声明

3.4.2 局部变量的使用

4.存储过程

4.1 if判断 

4.2存储参数

4.2.1 IN简单使用

​编辑

4.2.2 OUT简单使用

4.2.3INOUT简单使用 

4.3 case语句


1.存储过程概述

  • 定义:MySQL 存储过程是一组预编译的 SQL 语句,它们被存储在数据库中,并可以通过调用来执行。

  • 用途:存储过程可以用于封装复杂的 SQL 操作、提高代码的重用性、增强数据操作的安全性和性能。

  • 特点:可以接受参数,也可以返回数据,减少网络交互,效率提升

2.存储过程的基本语法

2.1创建存储过程
DELIMITER $$  -- 修改分隔符以避免与语句结束符冲突
CREATE PROCEDURE procedure_name (parameters)
BEGIN-- SQL 语句
END$$
DELIMITER ;  -- 恢复分隔符

存储过程的参数:

  • IN:输入参数,用于向存储过程传递值。
  • OUT:输出参数,用于存储过程返回数据。
  • INOUT:输入输出参数,既可以接收输入数据,又可以返回结果。

为什么需要改变分割符? 

改变分隔符 (DELIMITER) 主要是为了避免语句结束符(;)与存储过程、触发器等程序块中的语法冲突。如图一所示:

图一

2.2调用存储过程 
call procedure_name(parameters)

2.3查看存储过程信息

方法一:查看所有数据库的存储过程(!!!非必要不用)

show procedure status;

方法二:查看当前数据库的存储过程

show procedure status where db='db_name';
  • Db:存储过程所在的数据库

  • Name:存储过程的名称

  • Type:存储过程类型(例如 PROCEDURE

  • Definer:存储过程的定义者

  • Modified:最后修改时间

  • Created:创建时间

  • Security_type:安全类型

  • Comment:存储过程的注释

2.4查看存储过程定义
show create procedure procedure_name;

2.5删除存储过程
drop procedure procedure_name;

3.变量

3.1查看系统变量
3.1.1查看所有系统变量
show session variables;------查看当前环境变量
show global variables;-------查看全局环境变量
3.1.2系统变量的模糊匹配
show session variables like '...';
​show global variables like '...';

 3.1.3查看指定变量
select @@global.tname;----查看指定全局环境变量
select @@session.tname;----查看当前会话环境变量

 3.2设置全局变量vs设置当前(会话)变量
set global transaction isolation level read committed;

设置全局隔离级别 

现象:全局隔离级别发生变化,会话隔离级别没有变化

 重新启动一个新的会话:

 设置当前会话的隔离级别:
set session transaction isolation level read committed;

重新启动一个会话:

总结: 
  • 全局与会话隔离权限的关系:在大多数系统中,会话和全局权限是两者独立的,但又有关系。全局权限通常决定了系统中的默认行为和限制,而会话的权限则可以根据用户的需求做出适当的修改。在此系统中,修改全局的隔离权限时,现有会话的权限不会立刻发生变化,因为当前会话已被初始化并已经从全局权限中导入了隔离配置。

  • 会话的初始化与导入:当启动新会话时,系统会从全局隔离权限中导入当前的配置。此时新会话会继承全局隔离权限的设置。由于会话和全局权限是分离的,当当前会话发生变化时,它并不会影响到全局设置,反之亦然。

  • 修改全局隔离权限的时效性:这种机制的设计可以确保当前会话的稳定性,在进行全局权限修改时,避免对现有会话产生影响。但在重新启动会话时,新的会话会基于当前全局权限的状态进行初始化。

  • 对系统设计的影响:这种设计确保了全局权限的统一性和管理的集中性,同时又能保持会话的灵活性,使得管理员或系统能够灵活调整权限,而不需要影响到现有的会话状态。

 3.3用户定义变量

在 MySQL 中,用户定义变量(User-defined Variables)是指由用户在会话级别创建的临时变量。用户可以在 SQL 语句中使用这些变量来存储数据,进行计算或临时保存查询结果。用户定义变量的作用范围仅限于当前会话(连接),并且会话结束时这些变量会被自动销毁。

在 MySQL 中,用户定义变量的语法非常简单。变量名通常以 @ 开头,后面跟着变量名。使用 SET 语句或在查询中直接赋值给变量。

  • 使用 SET 语句定义变量:

    SET @variable_name = value;-----方法一
    SET @variable_name := value;----方法二
    

    例如,定义一个名为 @age 的变量并赋值为 25:

    SET @age = 25;
    
  • 也可以直接在查询语句中进行赋值:

    SELECT @variable_name := expression;
    

    例如,将查询结果赋值给变量:

    SELECT @age := age FROM users WHERE name = 'John';-----方法一SELECT age into @age FROM users WHERE name = 'John';---方法二
3.4局部变量

在 MySQL 中,局部变量是指在存储过程、函数或触发器内部定义的变量。它们的作用范围仅限于该存储过程、函数或触发器的执行期间,超出范围后会自动销毁。局部变量通常用于在存储过程或函数中临时存储数据,执行逻辑运算,或传递信息。

3.4.1.局部变量的声明

局部变量在 MySQL 存储过程或函数中使用 DECLARE 语句声明。它们的作用范围仅限于声明它们的存储过程、函数或触发器,并且不能在 SQL 查询外部使用

局部变量特点:

  • 局部性:局部变量仅在存储过程、函数或触发器的执行期间有效。在存储过程或函数执行完成后,局部变量会被自动销毁。

  • 不能在查询外部使用:局部变量只能在存储过程、函数或触发器内访问,不能在 SQL 查询的其他地方使用。

  • 生命周期:当存储过程或函数执行结束时,所有局部变量的值都会丢失。每次执行存储过程或函数时,局部变量会重新创建并赋予初始值(如果有的话)。

语法:

DECLARE variable_name data_type [DEFAULT value];
  • variable_name:变量的名称。

  • data_type:变量的数据类型(如 INT, VARCHAR, DATE 等)。

  • [DEFAULT value]:可选,设置默认值。如果不指定,则默认值为 NULL

例子:

DECLARE @user_id INT DEFAULT 100;
DECLARE @user_name VARCHAR(255) DEFAULT 'John';
3.4.2 局部变量的使用

局部变量通常用于存储中间结果、进行计算或在存储过程/函数中存储查询结果。可以在存储过程的 BEGINEND 之间访问这些变量。

  • 声明位置DECLARE 语句必须在存储过程、函数或触发器的开头部分,即 BEGIN 之后。

  • 不能使用用户定义变量的命名方式:局部变量不能以 @ 开头,@ 用于用户定义的会话变量。

  • 变量的初始值:如果局部变量未指定初始值,则其值默认为 NULL,因此需要注意处理 NULL 的情况。

示例 1:在存储过程中使用局部变量

delimiter ##
create procedure s2()
begindeclare a int;declare b int;declare c varchar(20);set b=1;set c='小王';select a,b,c;
end ##DELIMITER ;

在上述例子中:

  • original_price, discount_rate, final_price 都是局部变量。

  • DECLARE 语句在 BEGINEND 之间定义这些变量。

  • 通过 SET 语句为局部变量赋值,进行计算,并在存储过程中使用。

4.存储过程

4.1 if判断 

在 MySQL 存储过程中,IF 函数(或语句)用于根据条件执行不同的逻辑。IF 语句是控制流程语句的一部分,常用于在存储过程中根据特定条件执行不同的 SQL 操作。IF 语句可以单独使用,也可以与 ELSEELSEIF 配合使用,从而形成多分支的条件判断结构。

最简单的 IF 语句用于判断一个条件是否为 TRUE,如果为 TRUE,则执行特定的 SQL 操作。

语法:

IF condition THEN-- 执行的 SQL 语句
ELSEIF condition THEN-- 执行的 SQL 语句
ELSE-- 执行的 SQL 语句
END IF;

示例:

DELIMITER $$CREATE PROCEDURE CheckScore()
BEGINdeclare score int default 58;declare result varchar(10);if score>=80 thenset result:='优秀';elseif score>=60 thenset result:='及格';elseset result:='不及格';end if;select result;
END$$DELIMITER ;

4.2存储参数
  1. IN含义:该类参数作为输入,也就是需要调用时传入值。

  2. OUT含义:该类参数作为输出,也就是该参数可以作为返回值。

  3. INOUT含义:该类参数既可以作为输入参数,也可以作为输出参数。

CREATE PROCEDURE 存储过程名称 (IN/OUT/INOUT 参数名 参数类型)
BEGIN-- SQL语句
END;
4.2.1 IN简单使用
DELIMITER $$CREATE PROCEDURE CheckScoreIN(in score int)
BEGINdeclare result varchar(10);if score>=80 thenset result:='优秀';elseif score>=60 thenset result:='及格';elseset result:='不及格';end if;select result;
END$$DELIMITER ;

4.2.2 OUT简单使用
DELIMITER $$CREATE PROCEDURE CheckScoreOUT(in score int,out result varchar(20))
BEGINif score>=80 thenset result:='优秀';elseif score>=60 thenset result:='及格';elseset result:='不及格';end if;
END$$DELIMITER ;

4.2.3INOUT简单使用 
DELIMITER $$CREATE PROCEDURE CheckScoreINOUT(inout score double)
BEGINset score:=score*0.5;
END$$DELIMITER ;

4.3 case语句

在 MySQL 中,CASE 语句是一种条件表达式,允许您根据不同的条件选择不同的结果。CASE 语句通常用于 SELECT 查询、UPDATE 语句或存储过程中的条件判断。

语法: 

CASE expressionWHEN value1 THEN result1WHEN value2 THEN result2WHEN value3 THEN result3ELSE default_result
END
  • expression:需要判断的表达式。

  • value1, value2, value3:与表达式值进行比较的不同情况。

  • result1, result2, result3:与相应条件匹配时返回的结果。

  • ELSE:如果没有任何条件匹配时返回的默认值(可选)。

 实例:

delimiter ##
create procedure s4(in score int ,out grade varchar(3))
begin
casewhen score between 90 and 100  then set grade:='A';when score between 80 and 90   then set grade:='B';when score between 60 and 79   then set grade:='C';when score between 0  and 59   then set grade:='D';else set grade:='NO';
end case;
end ##
delimiter ;

4.4 while循环

在 MySQL 中,WHILE 循环是一种常用的控制结构,用于在给定条件为 TRUE 时反复执行一组 SQL 语句。WHILE 循环适用于需要重复执行某些操作的场景,直到满足指定的退出条件。

WHILE condition DO-- 执行的 SQL 语句
END WHILE;
  • condition:循环继续执行的条件。当条件为 TRUE 时,循环会执行;当条件为 FALSE 时,循环终止。

  • 循环内的 SQL 语句会在每次循环时执行。

  • 一旦 condition 不再为 TRUEWHILE 循环就会停止

相关文章:

Mysql之存储过程

🏝️专栏:Mysql_猫咪-9527的博客-CSDN博客 🌅主页:猫咪-9527-CSDN博客 “欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。 目录 1.存储过程概述 2.存储过程的基本语法 2.1创建存储过程 2.2调用存储过…...

2.第二章:政策法规与标准体系

文章目录 2.1 全球数据治理政策概览2.1.1 欧盟GDPR2.1.2 美国数据法规2.1.3 亚太地区数据法规 2.2 国际标准体系2.2.1 ISO/IEC 270012.2.2 NIST框架2.2.3 DAMA DMBOK2.2.4 其他国际标准 2.3 中国数据治理法规体系2.3.1 《网络安全法》2.3.2 《数据安全法》2.3.3 《个人信息保护…...

Kubernetes (k8s) 日常运维命令总结

一、资源查看 查看所有命名空间的 Pod kubectl get pod --all-namespaces查看指定命名空间的 Pod kubectl get pod --namespace <命名空间>查看所有部署&#xff08;Deployments&#xff09; kubectl get deployments.apps --all-namespaces查看所有守护进程集&#xff0…...

NLP高频面试题(五十三)——LLM中激活函数详解

引言 在现代大型语言模型架构中,激活函数是贯穿神经网络各层的关键组件。它们通过为线性变换结果引入非线性,从而赋予模型表达复杂语言模式的能力。选择合适的激活函数,不仅影响训练的稳定性与收敛速度,还在推理阶段决定了计算效率与模型性能。本文将系统梳理常见激活函数…...

跨平台软件开发探讨

一、跨平台开发核心思路 1. 代码复用最大化 通过抽象平台差异实现核心逻辑复用&#xff0c;理想情况下70%代码可复用&#xff0c;仅30%处理平台特性。 2. 分层架构设计 业务逻辑层&#xff1a;完全平台无关&#xff08;C/Rust&#xff09; 平台适配层&#xff1a;封装系统AP…...

网络原理————HTTP

1&#xff0c;HTTP简介 我们上一期谈到了网络编程尤其是TCP和UDP&#xff0c;使用网络套接字来实现网络编程&#xff0c;上一期忘记说了&#xff0c;我们使用TCP的时候&#xff0c;我们用了线程池&#xff0c;这样就可以处理很多客户端而不会阻塞&#xff0c;那么如果客户端一…...

安装Jupyter Notebook 之不断报错 差点放弃版

error: subprocess-exited-with-error Preparing metadata (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [6 lines of output] Cargo, the Rust package manager, is not installed or is not on PATH. This package requires Rust and Cargo to com…...

w~大模型~合集13

我自己的原文哦~ https://blog.51cto.com/whaosoft/13864163 #TextRCNN、TextCNN、RNN 小小搬运工周末也要学习一下~~虽然和世界没关 但还是地铁上看书吧, 大老勿怪 今天来说一下 文本分类必备经典模型 模型 SOTA&#xff01;模型资源站收录情况 模型来源论文 RAE ​…...

【华为】防火墙双击热备-之-主备模式-单外网线路

FW1和FW2的业务接口都工作在三层&#xff0c;上行连接二层交换机。上行交换机连接运营商的接入点&#xff0c;运营商为企业分配的IP地址为100.100.100.2。现在希望FW1和FW2以主备备份方式工作。正常情况下&#xff0c;流量通过FW1转发&#xff1b;当FW1出现故障时&#xff0c;流…...

学习记录:DAY16

Maven 进阶与前端实战 前言 二轮考核的内容下来了&#xff0c;由整体项目构建转为实现特定模块的功能。对细节的要求更高了&#xff0c;而且有手搓线程池、手搓依赖注入等进阶要求&#xff0c;又有得学力。嘻嘻&#xff0c;太简单了&#xff0c;只要我手搓 Spring Boot 框架……...

基于 Spring Boot 瑞吉外卖系统开发(六)

基于 Spring Boot 瑞吉外卖系统开发&#xff08;六&#xff09; 菜品列表 在系统管理端首页&#xff0c;单击左侧菜单栏中的“菜品管理”&#xff0c;会在右侧打开菜品管理页面。 请求URL/dish/page&#xff0c;请求方法GET,请求参数page&#xff0c;pageSize。 该菜品列表…...

香港服务器租用需要哪些性能要求

在如今数字化的时代&#xff0c;租用香港服务器成为了许多企业和个人的选择。但你知道租用香港服务器需要哪些性能要求吗&#xff1f;香港服务器租用需满足硬件性能、网络质量、安全合规、扩展能力四大核心要求&#xff0c;旨在支撑业务高并发、低延迟、稳定安全的运行环境。其…...

LLama Factory从入门到放弃

目录 简介 安装 LLama Factory界面介绍 数据格式要求 微调训练 今天在这里介绍一种常用的大模型微调框架——LLama Factory。 简介 LLama Factory 是一个高效的界面化大语言模型微调工具库&#xff0c;支持多种参数高效微调技术&#xff0c;提供简洁接口和丰富示例&#…...

钧瓷产业原始创新的许昌共识:技术破壁·产业再造·生态重构(一)

大禹智库 第 9期〔总第463期〕2025-4-23 钧瓷产业许昌共识&#xff1a;技术破壁产业再造生态重构&#xff08;一&#xff09; ——基于钧瓷产业一体化与数字化原始创新的双轮驱动实践 在当今快速发展的科技领域&#xff0c;创新已成为推动进步的核心动力&#xff0c;企业生存和…...

思科路由器密码绕过+重置

思科路由器密码忘记&#xff0c;重新设置密码不重置配置 1、路由器在初始化过程中会询问是否进行初始化配置&#xff0c;输入no&#xff0c;将直接进入路由器&#xff0c;不会出现用户设置、密码设置等操作。 Would you like to enter the initial configuration dialog? [ye…...

OpenCV 图形API(52)颜色空间转换-----将 NV12 格式的图像数据转换为 RGB 格式的图像

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 将图像从 NV12 (YUV420p) 色彩空间转换为 RGB。该函数将输入图像从 NV12 色彩空间转换到 RGB。Y、U 和 V 通道值的常规范围是 0 到 255。 输出图…...

为什么圆形在GeoJSON中被表示为多边形(Polygon)而不是圆形类型

GeoJSON规范中没有"圆形"类型 GeoJSON是一种用于表示地理空间数据的标准格式&#xff0c;它的规范中只定义了以下几种基本几何类型&#xff1a; Point (点) LineString (线) Polygon (多边形) MultiPoint (多点) MultiLineString (多线) MultiPolygon (多多边形) Ge…...

【解读】Chrome 浏览器实验性功能全景

Chrome 浏览器提供了大量可配置的实验性或功能性设置&#xff0c;主要涉及安全、性能、多媒体、Web API、隐私等多个方面&#xff0c;这些设置可在 Chrome 浏览器的 flags 页面进行调整。 安全相关设置 不安全源设置&#xff1a;可通过#unsafely-treat-insecure-origin-as-sec…...

LInux平均负载

Linux平均负载是**指在一定时间内&#xff0c;系统中处于可运行状态或正在等待资源的进程数的平均值。**它是衡量系统整体工作负载的重要指标&#xff0c;反映了系统的繁忙程度。平均负载通常分为过去1分钟、5分钟和15分钟的平均值。 理解平均负载的关键点 与CPU核心数的关系 *…...

【人工智能】Ollama 负载均衡革命:多用户大模型服务的高效调度与优化

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在 多用户大模型推理 场景下,负载均衡 是确保高并发、低延迟的关键挑战。本文以 Ollama(一个流行的本地大模型运行框架)为例,深入探讨 …...

deepseek-php-client开源程序是强力维护的 PHP API 客户端,允许您与 deepseek API 交互

一、软件介绍 文末提供程序和源码下载学习 deepseek-php-client开源程序是强力维护的 PHP API 客户端&#xff0c;允许您与 deepseek API 交互。 二、Features 特点 无缝 API 集成&#xff1a;DeepSeek 人工智能功能的 PHP 优先接口。流畅构建器模式&#xff1a;可链式调用的…...

ThinkPHP快速使用手册

目录 介绍 安装&#xff08;windows环境&#xff09; 安装Composer 安装ThinkPHP 目录结构 配置文件 第一个接口&#xff08;Controller层&#xff09; Hello World 自定义Controller 请求参数 获取查询参数&#xff08;Get请求&#xff09; 获取指定请求参数 获取…...

文档构建:Sphinx全面使用指南 — 强化篇

文档构建&#xff1a;Sphinx全面使用指南 — 强化篇 Sphinx 是一款强大的文档生成工具&#xff0c;使用 reStructuredText 作为标记语言&#xff0c;通过扩展兼容 Markdown&#xff0c;支持 HTML、PDF、EPUB 等多种输出格式。它具备自动索引、代码高亮、跨语言支持等功能&#…...

Laravel 自定义 Artisan 命令行

1.什么是Artisan 命令行 Artisan 是 Laravel 中自带的命令行接口。Artisan 以 artisan 脚本的方式存在于应用的根目录中&#xff0c;提供了许多有用的命令。 查看所有命令行 php artisan list系统自带我很多的命令&#xff0c;大家可以自己去试一下&#xff0c;例如&#xf…...

node.js 实战——(fs模块 知识点学习)

fs 模块 也可以称之为文件系统模块&#xff0c;是node中的内置模块&#xff0c;可以实现与硬盘的交互。比如文件的创建、删除、重命名、移动&#xff0c;还有文件内容的写入、读取&#xff0c;以及文件夹的相关操作 #mermaid-svg-NAByzqTngZUOyQcY {font-family:"trebuch…...

openharmony5.0.0中C++公共基础类测试-线程相关(一)

C公共基础类测试及源码剖析 延续传统&#xff0c;show me the code&#xff0c;除了给出应用示例还重点分析了下openharmony中的实现。 简介 openharmony中提供了C公共基础类库&#xff0c;为标准系统提供了一些常用的C开发工具类&#xff0c;本文分析其实现&#xff0c;并给…...

前缀和相似题共赏

P3131 [USACO16JAN] Subsequences Summing to Sevens S P3131 [USACO16JAN] Subsequences Summing to Sevens S 思路: 一看到区间和我们应该就能马上想到把这个区间拆分成两个前缀相减的形式 式子为:(Pre[r] - Pre[l-1]) % 7 0 Pre[r] % 7 Pre[l-1] % 7 Pre[r] Pre[l-1] 所…...

一文读懂https

http和https的关系 http&#xff0c;应用层协议&#xff0c;由于采用明文传输&#xff0c;不安全&#xff0c;还有很多其他安全问题&#xff0c;为此就衍生出了同为应用层协议的https。https在http的基础上引入了SSL&#xff08;Secure Socket Layer 安全套接层&#xff09;和…...

为什么 requests 不是 python 标准库?

为什么 requests 不是 python 标准库&#xff1f; requests开发者Kenneth之前还严肃地征求过这个意见&#xff0c;感兴趣的可以看看 https://github.com/psf/requests/issues/2424 我大致瞅了下&#xff0c;基本都不赞成requests加入python标准库&#xff0c;主要有以下两个原…...

[STM32] 4-1 UART与串口通信

文章目录 前言4-1 UART与串口通信串口简介串口接线 数据帧串口的数据帧格式空闲位起始位数据位校验位&#xff08;位于数据位内部&#xff09;奇偶校验 停止位 异步通信和波特率同步通信异步通信波特率 流控的概念串口流控的工作原理 随堂测试问题1:说出Tx、Rx、CTS、RTS、VCC、…...

7-1 三种语言的单词转换

编写程序实现&#xff1a;首先从键盘输入若干个中文与英文单词的偶对&#xff0c;以空行作结束标记&#xff1b;再输入若干个英文与丹麦文单词的偶对&#xff0c;以空行作结束标记。然后输入一个中文单词&#xff0c;输出对应的丹麦文单词&#xff1b;若不存在该单词&#xff0…...

高防IP是什么

"高防IP"是指"高防护IP"&#xff0c;是一种防御DDoS&#xff08;分布式拒绝服务攻击&#xff09;的网络安全服务。在分布式拒绝服务攻击中&#xff0c;攻击者会利用许多不同的计算机或者其他设备&#xff0c;通过向目标发送大量的网络请求来尝试使目标服务…...

基于javaweb的SSM宠物商城设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...

《TCP/IP详解 卷1:协议》之第六章:ICMP:Internet控制报文协议

目录 一、ICMP协议 二、ICMP 报文格式 三、ICMP询问报文 四、ICMP 差错报告报文 五、ICMP端口不可达差错 一、ICMP协议 ICMP&#xff08;Internet Control Message Protocol&#xff0c;互联网控制消息协议&#xff09;是网络层的一个核心协议&#xff0c;用于在IP主机、…...

SpringBoot项目,密码加密之“BCrypt加密”

前言 这种方法&#xff0c;是当前推荐的密码加密方式。&#xff08;现在不推荐使用MD5加密了&#xff09;。 如何在springboot项目中&#xff0c;使用bcrypt加密&#xff1f;请分步骤详细介绍一下 一.在Spring Boot项目中使用BCrypt加密的详细步骤 BCrypt是当前推荐用于密码存…...

外贸获客新革命:基于AI的搜索引擎排名攻防战——48小时抢占谷歌TOP3的技术逻辑与实战路径

一、传统SEO的三大死亡陷阱&#xff08;为什么你的客户正在被AI截流&#xff1f;&#xff09; 关键词荒漠化 人工筛选关键词效率不足1%&#xff0c;95%的B2B采购商使用长尾词搜索&#xff08;如"IP68 waterproof LED strip for outdoor projects"&#xff09;而非通…...

0101基础知识-区块链-web3

文章目录 1 web3学习路线2 区块链简史2.1 区块链2.2 公共账本2.3 区块链的设计哲学2.3.1 去中心化2.3.2 共识2.3.2.1 上链2.3.2.2 共识算法 3 web3面向资产的互联网3.1 安全性和去中心化的权衡 4 智能合约4.1 以太坊智能合约4.2 去中心化应用 5 小结结语 1 web3学习路线 参考下…...

SpringMVC从入门到上手-全面讲解SpringMVC的使用.

一、springmvc介绍 MVC全称Model View Controller&#xff0c;是一种设计创建Web应用程序的模式。这三个单词分别代表Web应用程序的三个部分&#xff1a; Model&#xff08;模型&#xff09;&#xff1a;指数据模型。用于存储数据以及处理用户请求的业务逻辑。在Web应用中&…...

解锁现代生活健康密码,开启养生新方式

在科技飞速发展的当下&#xff0c;我们享受着便捷生活&#xff0c;却也面临诸多健康隐患。想要维持良好状态&#xff0c;不妨从这些细节入手&#xff0c;解锁科学养生之道。​ 肠道是人体重要的消化器官&#xff0c;也是最大的免疫器官&#xff0c;养护肠道至关重要。日常可多…...

绿色森林人文生活纪实摄影Lr调色教程,手机滤镜PS+Lightroom预设下载!

调色介绍 绿色森林人文生活纪实摄影 Lr 调色&#xff0c;是借助 Lightroom 软件&#xff0c;对以绿色森林为背景&#xff0c;记录人文生活场景的纪实摄影作品进行后期调色处理。通过调整画面的色彩、光影、对比度等参数&#xff0c;让画面融入绿色森林的独特氛围&#xff0c;真…...

【项目篇】仿照RabbitMQ模拟实现消息队列

大家好呀 我是浪前 项目篇&#xff1a;仿照RabbitMQ模拟实现消息队列 今天是项目的第一篇&#xff0c;我们先来创建出最核心的几个类。 仿照RabbitMQ模拟实现消息队列 创建Exchange类MessageQueue类Binding类Message类1&#xff1a;BasicProperties类2&#xff1a;正文部分3&a…...

JAVA程序获取SVN提交记录

1.获取文件提交记录 private String userName "userName "; //svn账号 private String password "password "; //svn密码 private String urlString "urlString "; //svnurl 换成自己对应的svn信息 package com.tengzhi.common.dao;import…...

从检索到生成:RAG 如何重构大模型的知识边界?

目录 一、技术演进图谱说明 二、RAG 技术概述 &#xff08;一&#xff09;核心思想说明 &#xff08;二&#xff09;RAG 发展路径与研究范式 三、Naive RAG&#xff1a;最基础的检索增强生成范式 &#xff08;一&#xff09;Naive RAG 的标准流程 1. 索引&#xff08;In…...

rabbitmq-spring-boot-start版本优化升级

文章目录 1.前言2.优化升级内容3.依赖4.使用4.1发送消息代码示例4.2消费监听代码示例4.3 brock中的消息 5.RabbmitMq的MessageConverter消息转换器5.1默认行为5.2JDK 序列化的缺点5.3使用 JSON 进行序列化 6.总结 1.前言 由于之前手写了一个好用的rabbitmq-spring-boot-start启…...

SVN仓库突然没有权限访问

如果svn仓库突然出现无法访问的情况&#xff0c;提示没有权限&#xff0c;所有账号都是如此&#xff0c;新创建的账号也不行。 并且会突然提示要输入账号密码。 出现这个情况时&#xff0c;大概率库里面的文件有http或者https的字样&#xff0c;因为单独给该文件添加权限导致…...

vue实现静默打印pdf

浏览器中想要打印文件&#xff0c;不依靠浏览器自带的打印窗口&#xff0c;想要实现静默打印&#xff08;也就是不弹出打印对话框&#xff09;&#xff0c;同时控制打印份数的功能&#xff0c;一种方式是使用vue-plugin-hiprint和本地安装客户端electron-hiprint 本来是浏览器去…...

如何开启远程桌面连接外网访问?异地远程控制内网主机

实现远程桌面连接外网访问&#xff0c;能够突破地域限制&#xff0c;随时随地访问远程计算机&#xff0c;满足远程办公、技术支持等多种需求。下面为你详细介绍开启方法。 一、联网条件 确保本地计算机和远程计算机都有稳定的网络连接&#xff0c;有联网能上网。 二、开启远程…...

数据结构与算法学习笔记(Acwing提高课)----动态规划·数字三角形

数据结构与算法学习笔记----动态规划数字三角形 author: 明月清了个风 first publish time: 2025.4.23 ps⭐️终于开始提高课的题啦&#xff0c;借的人家的号看&#xff0c;以后给y总补票叭&#xff0c;提高课的题比之前的多很多啊哈哈哈哈&#xff0c;基本上每种题型都对应了…...

RK3568平台开发系列讲解(调试篇)debugfs文件系统及常见调试节点介绍

更多内容可以加入Linux系统知识库套餐(教程+视频+答疑) 🚀返回专栏总目录 文章目录 一、什么是debugfs二、/proc/filesystems三、debugfs的挂载3.1、fstab 的文件结构3.2、手动挂载与卸载四、debugfs 常见目录有哪些4.1、/sys/kernel/debug/gpio4.2、/sys/kernel/debug/…...

数字化转型避坑指南:中钧科技如何用“四个锚点”破解转型深水区

数字化转型浪潮下&#xff0c;企业常陷入四大典型陷阱&#xff1a;跟风式投入、数据沼泽化、流程伪在线、安全裸奔化。中钧科技旗下产品以“经营帮”平台为核心&#xff0c;通过针对性方案帮助企业绕开深坑。 陷阱一&#xff1a;盲目跟风&#xff0c;为数字化而数字化 许…...