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

MySQL的存储过程

这一部分比较重要,加油!!!部分代码忘记保存了,嘻嘻,练习代码在最后,大家共勉!!!

通俗来讲,视图是死的,但是这个可以根据传入的参数不同来得到不同的结果,其实就是对sql的一个封装,封装成一个模块,一个函数

数据添加

一、入门案例

二、变量定义

局部变量

只在begin/end块中有效 

可以直接给变量赋值

也可以通过select into给语句赋值

用户变量

MySQL服务器和navicat之间连接就是一个会话,会话存在时用户变量可以正常使用,会话不存在时无效

不需要声明,使用就是声明

离开了函数,也可以单独使用

系统变量

系统变量分为全局变量和会话变量

时MySQL提前给你定义好的,你不能随便定义,你可以查看和修改他的值

也就是,会话变量数据和全局变量一样,只是会话变量是全局变量的一个拷贝

但是全局变量修改会影响到整个服务器,但是对会话变量修改,只会影响到当前的会话(也就是当前的数据库连接)

全局变量

由系统提供,在整个数据库有效

会话变量

由系统提供,当前会话(连接)有效

会话变量和全局变量的语法基本上差不多,把全局变量的global改成session即可

三、参数传递

in

in表示传入的参数,可以传入数值或者变量,即使传入变量,并不会更改变量的值,可以内部更改,仅仅作用在函数范围内

其实就是定义一个参数,然后后续调用时,在传入相应的参数后,返回对应的值

相当于写了一个变量是param_empno,后续调用时直接传入这个变量相对应的值

也可以一次性传入多个参数,跟python很像,有基础的话会更好理解一点

out

out表示从存储过程内部传值给调用者

相当于调用时,给一个变量,会返回这个变量

返回多个变量

inout

inout表示从外部传入的参数经过修改后可以返回的变量,既可以使用传入变量的值也可以修改变量的值(即使函数执行完)

concat_ws是一个拼接函数

in、out、inout,三者的区别

in:输入参数,意思说你的参数要传到存储过程的过程里面去,在存储过程中修改该参数的值不能被返回

out:输出参数,该值可在存储过程内部被改变,并向外输出

inout:输入输出参数,既能输入一个值又能传出来一个值

四、流程控制

分支语句-if

if 语句包含多个条件判断,根据结果为TRUE、FALSE执行语句,与编程语言中的if、else if、else语法类似

elseif可以写多个

也可以直接输入

分支语句-case

case是另一个条件判断的语句,类似于编程语言中的switch语法

case格式2和if格式一模一样

循环语句-介绍

循环分类:while、repeat、loop

循环控制:leave类似于break,跳出,结束当前所在的循环

iterate类似于continue,继续,结束本次循环,继续下一次

循环语句-while

 truncate table user;清空表的数据

while结合leave时,就需要加入标签了

while+leave

语句的位置不一样,也会造成不一样的效果

while+iterate

循环语句-repeat循环

语法都差不多,就是until这里不一样

循环语句-loop

五、游标cursor的使用

游标是用来存储查询结果集的数据类型,在存储过程和函数中可以使用光标对结果集进行循环的处理,光标的使用包括光标的声明、open、fetch和close。

游标的具体操作

六、异常处理-句柄handler

 

  -- 定义句柄,就是异常的处理方式
  -- 1、异常处理完之后程序改怎么执行
  -- continue:继续执行剩余代码
  -- exit:直接终止程序
  -- undo:不用他,不支持
  -- 2、触发条件  条件码:1329
  -- 条件名:sqlwarning、not found、sqlexception
  -- 3、异常触发之后执行什么代码  设置flag的值---》0

加上异常值的处理,就不会报错了

七、练习

预备知识

date_add就是给当前时间在加上一个时间段

获取下一个月的最后一天

结果代码展示

生成了下一个月的表

-- 思路:循环构建表名user_2021_11_01 到 user_2021_11_30:并执行create语句
create database mydb18_proc_demo;
use mydb18_proc_demo;
drop procedure if exists proc22_demo;
delimiter $$
create procedure proc22_demo()
begin 
  declare next_year int; -- 下一个月的年份
  declare next_month int; -- 下一个月的月份
  declare next_month_day int;  -- 下一个月最后一天的日期
  
  declare next_month_str varchar(2);  -- 下一个月的月份字符串
  declare next_month_day_str char(2); -- 下一个月的日字符串
  
  -- 处理每天的表名
  declare table_name_str char(10);
  declare t_index int default 1;
  
  -- 获取下个月的年份
  set  next_year =year(date_add(now(),interval 1 month)); -- 年份
  -- 获取下个月是几月
  set  next_month = month(date_add(now(),interval 1 month)); -- 月份
  -- 下个月最后一天是几号
  set next_month_day = dayofmonth(last_day(date_add(now(),interval 1 month))); -- 日期
  
  if next_month < 10
    then set next_month_str = concat('0',next_month); -- 1 --> 01
  else 
    set next_month_str = concat('',next_month); -- 11 -->11
  end if;
  
  while t_index <= next_month_day do 
   if (t_index < 10)
    then set next_month_day_str = concat('0',t_index);
   else
    set next_month_day_str = concat('',t_index);
   end if;
  
  -- 2021_11_01
  set table_name_str = concat(next_year,'_',next_month_str,'_',next_month_day_str);
  -- 拼接create sql语句
  set @create_table_sql = concat('create table user_',table_name_str,
  '(uid int ,uname varchar(50),information varchar(50)) collate = \'utf8_general_ci\' engine = innodb');
  -- from后面不能使用局部变量!
  prepare create_table_stmt from @create_table_sql; -- 预处理
  execute create_table_stmt; -- 执行预处理
  deallocate prepare create_table_stmt; -- 将他释放
  
  set t_index = t_index + 1;
  
  end while;
end $$
delimiter ;
  call proc22_demo;

八、总结

九、存储函数

和存储过程差不多

调用的时候直接调用即可

没有参数

有参数

传入参数时只用在后面加上传入参数的类型即可

十、部分代码


-- 思路:循环构建表名user_2021_11_01 到 user_2021_11_30:并执行create语句
create database mydb18_proc_demo;
use mydb18_proc_demo;
drop procedure if exists proc22_demo;
delimiter $$
create procedure proc22_demo()
begin 
  declare next_year int; -- 下一个月的年份
  declare next_month int; -- 下一个月的月份
  declare next_month_day int;  -- 下一个月最后一天的日期
  
  declare next_month_str varchar(2);  -- 下一个月的月份字符串
  declare next_month_day_str char(2); -- 下一个月的日字符串
  
  -- 处理每天的表名
  declare table_name_str char(10);
  declare t_index int default 1;
  
  -- 获取下个月的年份
  set  next_year =year(date_add(now(),interval 1 month)); -- 年份
  -- 获取下个月是几月
  set  next_month = month(date_add(now(),interval 1 month)); -- 月份
  -- 下个月最后一天是几号
  set next_month_day = dayofmonth(last_day(date_add(now(),interval 1 month))); -- 日期
  
  if next_month < 10
    then set next_month_str = concat('0',next_month); -- 1 --> 01
  else 
    set next_month_str = concat('',next_month); -- 11 -->11
  end if;
  
  while t_index <= next_month_day do 
   if (t_index < 10)
    then set next_month_day_str = concat('0',t_index);
   else
    set next_month_day_str = concat('',t_index);
   end if;
  
  -- 2021_11_01
  set table_name_str = concat(next_year,'_',next_month_str,'_',next_month_day_str);
  -- 拼接create sql语句
  set @create_table_sql = concat('create table user_',table_name_str,
  '(uid int ,uname varchar(50),information varchar(50)) collate = \'utf8_general_ci\' engine = innodb');
  -- from后面不能使用局部变量!
  prepare create_table_stmt from @create_table_sql; -- 预处理
  execute create_table_stmt; -- 执行预处理
  deallocate prepare create_table_stmt; -- 将他释放
  
  set t_index = t_index + 1;
  
  end while;
end $$
delimiter ;
  call proc22_demo;
  
-- 存储函数
create database mydb9_function;
use mydb9_function;

-- 准备数据

CREATE TABLE dept(
    deptno INT PRIMARY KEY,
  dname VARCHAR(20),
    loc VARCHAR(20)
);
INSERT INTO dept VALUES(10, '教研部','北京'),
(20, '学工部','上海'),
(30, '销售部','广州'),
(40, '财务部','武汉');

CREATE TABLE emp(
    empno INT PRIMARY KEY,
    ename VARCHAR(20),
    job VARCHAR(20),
    mgr INT,
    hiredate DATE,
    sal NUMERIC(8,2),
    comm NUMERIC(8, 2),
    deptno INT,
--     FOREIGN KEY (mgr) REFERENCES emp(empno),
    FOREIGN KEY (deptno) REFERENCES dept(deptno) ON DELETE SET NULL ON UPDATE CASCADE
);

INSERT INTO emp VALUES
(1001, '甘宁', '文员', 1013, '2000-12-17', 8000.00, NULL, 20),
(1002, '黛绮丝', '销售员', 1006, '2001-02-20', 16000.00, 3000.00, 30),
(1003, '殷天正', '销售员', 1006, '2001-02-22', 12500.00, 5000.00, 30),
(1004, '刘备', '经理', 1009, '2001-4-02', 29750.00, NULL, 20),
(1005, '谢逊', '销售员', 1006, '2001-9-28', 12500.00, 14000.00, 30),
(1006, '关羽', '经理', 1009, '2001-05-01', 28500.00, NULL, 30),
(1007, '张飞', '经理', 1009, '2001-09-01', 24500.00, NULL, 10),
(1008, '诸葛亮', '分析师', 1004, '2007-04-19', 30000.00, NULL, 20),
(1009, '曾阿牛', '董事长', NULL, '2001-11-17', 50000.00, NULL, 10),
(1010, '韦一笑', '销售员', 1006, '2001-09-08', 15000.00, 0.00, 30),
(1011, '周泰', '文员', 1008, '2007-05-23', 11000.00, NULL, 20),
(1012, '程普', '文员', 1006, '2001-12-03', 9500.00, NULL, 30),
(1013, '庞统', '分析师', 1004, '2001-12-03', 30000.00, NULL, 20),
(1014, '黄盖', '文员', 1007, '2002-01-23', 13000.00, NULL, 10);
-- 允许创建函数权限信任
set global log_bin_trust_function_creators = TRUE;
-- 创建存储函数-没有参数
drop function if exists myfunc1_emp;
delimiter $$
create function myfunc1_emp() returns int 
begin 
-- 定义局部变量
  declare cnt int default 0;
  select count(*) into cnt from emp;
  return cnt;
end $$
delimiter ;

-- 调用存储函数
select myfunc1_emp();


-- 有参数
-- 传入一个员工的编号,返回员工的名字
drop function if exists myfunc2_emp;
delimiter $$
  create function myfunc2_emp(in_empno int) returns varchar(50)
  begin 
    declare out_ename varchar(50);
    select ename into out_ename from emp where empno = in_empno;
    return out_ename;
  end $$
delimiter ;
-- 调用存储函数
select myfunc2_emp(1008);
 

相关文章:

MySQL的存储过程

这一部分比较重要&#xff0c;加油&#xff01;&#xff01;&#xff01;部分代码忘记保存了&#xff0c;嘻嘻&#xff0c;练习代码在最后&#xff0c;大家共勉&#xff01;&#xff01;&#xff01; 通俗来讲&#xff0c;视图是死的&#xff0c;但是这个可以根据传入的参数不同…...

spring学习->sprintboot

spring IoC(控制翻转): 控制:资源的控制权(资源的创建&#xff0c;获取&#xff0c;销毁等) 反转:和传统方式不一样(用上面new什么)&#xff0c;不用new让ioc来发现你用什么&#xff0c;然后我来给什么 DI:(依赖注入) 依赖:组件的依赖关系。如newsController依赖NewsServi…...

如何排查阻塞语句

文章目录 文档用途详细信息 文档用途 查询阻塞当前sql的语句&#xff0c;并结束阻塞语句。 详细信息 1、通过pg_stat_activity视图和pg_blocking_pids函数查找阻塞sql。 highgo# select pid,pg_blocking_pids(pid),wait_event_type,wait_event,query from pg_stat_activity…...

TIP-2021《SRGAT: Single Image Super-Resolution With Graph Attention Network》

推荐深蓝学院的《深度神经网络加速&#xff1a;cuDNN 与 TensorRT》&#xff0c;课程面向就业&#xff0c;细致讲解CUDA运算的理论支撑与实践&#xff0c;学完可以系统化掌握CUDA基础编程知识以及TensorRT实战&#xff0c;并且能够利用GPU开发高性能、高并发的软件系统&#xf…...

【AI学习】AI大模型技术发展研究月报的生成提示词

AI大模型技术发展研究月报生成提示词 请输出AI大模型技术发展研究月报&#xff0c;要求如下&#xff1a; —————————— 任务目标 在今天&#xff08;{{today}}&#xff09;往前连续 30 天内&#xff0c;检索已正式公开发表的、与AI大模型&#xff08;参数量 ≥10B&am…...

深入理解 Git 分支操作的底层原理

在软件开发的世界里&#xff0c;Git 已经成为了版本控制的标配工具。而 Git 分支功能&#xff0c;更是极大地提升了团队协作和项目开发的效率。我们在日常开发中频繁地创建、切换和合并分支&#xff0c;但是这些操作背后的底层原理是怎样的呢&#xff1f;在之前的博客探秘Git底…...

泰迪杯特等奖案例深度解析:基于多模态融合与小样本学习的工业产品表面缺陷智能检测系统

(第九届泰迪杯数据挖掘挑战赛特等奖案例全流程拆解) 一、案例背景与核心挑战 1.1 工业质检痛点分析 在3C电子、汽车零部件等高端制造领域,产品表面缺陷(划痕、凹陷、氧化等)检测是质量控制的核心环节。传统人工目检存在效率低(平均检测速度3秒/件)、漏检率高(约15%)…...

Go语言爬虫系列教程 实战项目JS逆向实现CSDN文章导出教程

爬虫实战&#xff1a;JS逆向实现CSDN文章导出教程 在这篇教程中&#xff0c;我将带领大家实现一个实用的爬虫项目&#xff1a;导出你在CSDN上发布的所有文章。通过分析CSDN的API请求签名机制&#xff0c;我们将绕过平台限制&#xff0c;获取自己的所有文章内容&#xff0c;并以…...

轨道炮--范围得遍历,map巧统计

1.思路很难想&#xff0c;但代码一看一下就明白了&#xff0c;就是模拟时间&#xff0c;map存起来遍历也不受10*6影响 2.每次先统计点对应的直线&#xff0c;再动这个点&#xff0c;map一遍历实时更新ma统计max&#xff0c;AC!!!! https://www.luogu.com.cn/problem/P8695 #i…...

python中集合的操作

Python中的集合&#xff08;Set&#xff09;是一种无序、可变且元素唯一的数据结构&#xff0c;主要用于去重和数学运算。以下是核心操作分类&#xff1a; ‌1. 集合创建‌ 大括号创建&#xff1a;s {1, 2, 3}&#xff08;空集合必须用set()&#xff09;构造函数&#xff1a…...

常见激活函数——作用、意义、特点及实现

文章目录 激活函数的意义常见激活函数及其特点1. Sigmoid&#xff08;Logistic 函数、S型函数&#xff09;2. Tanh&#xff08;双曲正切函数&#xff09;3. ReLU&#xff08;Rectified Linear Unit修正线性单元&#xff09;4. Softmax5. Swish&#xff08;Google 提出&#xff…...

FC7300 Trigger MCAL配置引导

FC7300包含4个触发器选择(TRGSELs)。详细的连接信息将在章节中描述。Trigger Select (TRGSEL)源。TRGSEL模块允许软件为外设选择触发器源。   TRGSEL提供了一种极其灵活的机制,用于将各种触发器源连接到多个引脚/外设。   在TRGSEL中,每个控制寄存器最多支持4个输出触…...

组件导航 (HMRouter)+flutter项目搭建-混合开发+分栏效果

组件导航 (Navigation)flutter项目搭建 接上一章flutter项目的环境变量配置并运行flutter 1.flutter创建项目并运行 flutter create fluter_hmrouter 进入ohos目录打开编辑器先自动签名 编译项目-生成签名包 flutter build hap --debug 运行项目 HMRouter搭建安装 1.安…...

WAS和Tomcat的对比

一、WAS和Tomcat的对比 WebSphere Application Server (WAS) 和 Apache Tomcat 是两款常用的 Java 应用服务器&#xff0c;但它们有许多显著的区别。在企业级应用中&#xff0c;它们扮演不同的角色&#xff0c;各自有其特点和适用场景。以下是它们在多个维度上的详细对比&…...

GPU Runtime Suspend 调试与验证:从 sysfs 到 perf 分析

选题背景&#xff1a;在基于 NXP i.MX8MP 平台调试 GPU 时&#xff0c;常常需要确认 Vivante GPU2D/ Vivante GPU2D/\uGPU3D 是否已经进入 runtime suspend &#xff0c;以降为一篇完整的验证和分析步骤&#xff0c;适合用于实战调试与面试表达。 一、什么是 Runtime Suspend&a…...

响应式布局

布局方式 固定宽度布局:主流的宽度有960px/980px/1190px/1210px等。移动端用户需要缩放查看页面内容 流式布局:百分比设置相对宽度。在不同设备上都能完整显示。兼容性一般,可能发生错位 响应式布局:一套代码自动适配不同终端。检测设备信息,根据设备调整布局。用户体验最…...

简单入门RabbitMQ

本章将带大家来写一个简单的程序&#xff0c;使用 Java 创建RabbitMQ 的生产者和消费者 依赖引入 在 Maven 仓库中输入 amqp-client&#xff1a; 找到第一个 RabbitMQ Java Client &#xff0c;点击进去找到一个合适的版本然后将依赖引入到我们项目中的 pom.xml 文件中。 …...

金属加工液展|切削液展|2025上海金属加工液展览会

2025上海金属加工液展览会 时间&#xff1a;2025年12月2-4日 地点&#xff1a;上海新国际博览中心 2025上海金属加工液展规划30000平方米展览规模&#xff0c;预设展位1200个&#xff0c;将为国内外加工液产业提供一个集“展示、合作、交易、发展”于一体的综合性平台&#…...

前端实现流式输出《后端返回Markdown格式文本,前端输出类似于打字的那种》

一、使用插件 插件名称&#xff1a;marked 版本&#xff1a;15.0.11 安装插件&#xff1a;npm install marked15.0.11 作用&#xff1a;marked 是一个用于将 Markdown 语法转换为 HTML 的 JavaScript 库 插件2名称&#xff1a;dompurify 版本&#xff1a;3.2.5 安装插件&…...

Python字符串常用方法详解

文章目录 Python字符串常用方法详解一、字符串大小写转换方法(常用)1. 基础大小写转换2. 案例&#xff1a;验证码检查&#xff08;不区分大小写&#xff09; 二、字符串查找与替换方法1. 查找相关方法2. 替换相关方法 三、字符串判断方法1. 内容判断方法 四、字符串分割与连接方…...

深度学习中的归一化:提升模型性能的关键因素

&#x1f4cc; 友情提示&#xff1a; 本文内容由银河易创AI&#xff08;https://ai.eaigx.com&#xff09;创作平台的gpt-4-turbo模型辅助完成&#xff0c;旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证&#xff0c;建议读者通过官方文档或实践进一步确认…...

【C++】 —— 笔试刷题day_30

一、爱吃素 题目解析 这道题&#xff0c;简单来说就是给定两个数a和b&#xff0c;然后让我们判断a*b是否是素数。 算法思路 这道题还是比较简单的 首先&#xff0c;输入两个数a和b&#xff0c;这两个数的数据范围都是[1, 10^11]&#xff1b;10的11次方&#xff0c;那a*b不就是…...

WebMvcConfigurer介绍-笔记

1.WebMvcConfigurer功能简介 org.springframework.web.servlet.config.annotation.WebMvcConfigurer 是 Spring MVC 提供的一个接口&#xff0c;用于自定义 Web 应用的配置。通过实现该接口&#xff0c;开发者可以灵活地添加拦截器&#xff08;Interceptors&#xff09;、配置…...

简单图像自适应亮度对比度调整

一、背景介绍 继续在刷对比度调整相关算法&#xff0c;偶然间发现了这个简单的亮度/对比度自适应调整算法&#xff0c;做个简单笔记记录。也许后面用得到。 二、自适应亮度调整 1、基本原理 方法来自论文:Adaptive Local Tone Mapping Based on Retinex for High Dynamic Ran…...

[SpringBoot]Spring MVC(2.0)

紧接上文&#xff0c;这篇我们继续讲剩下的HTTp请求 传递JSON数据 简单来说&#xff1a;JSON就是⼀种数据格式,有⾃⼰的格式和语法,使⽤⽂本表⽰⼀个对象或数组的信息,因此JSON本质是字符串. 主要负责在不同的语⾔中数据传递和交换 JSON的语法 1. 数据在 键值对(Key/Value) …...

GDB 高级调试技术深度解析

1. 引言 GNU调试器(GDB)是软件开发和逆向工程领域中不可或缺的工具。它为开发者提供了一个强大的环境,用于检查正在运行的程序或程序崩溃后产生的核心转储文件的内部状态。虽然许多开发者熟悉GDB的基本命令,如设置断点和单步执行,但GDB的真正威力在于其丰富的高级功能集。…...

【Kuberbetes】详谈网络(第三篇)

目录 前言 一、K8S的三种网络 1.1 Pod 内容器与容器之间的通信 1.2 同一个 Node 内 Pod 之间的通信 1.3 不同 Node 上 Pod 之间的通信 1.4 汇总 二、K8S的三种接口 三、VLAN 和 VXLAN 的区别 3.1 使用场景不同 3.2 支持的数量不同 3.3 是否记录到MAC地址表中…...

【科普】具身智能

一、具身智能的基本概念与理论框架 具身智能&#xff08;Embodied Intelligence, EI&#xff09;是指智能体通过物理身体与环境的实时交互&#xff0c;实现感知、决策和行动的能力。其核心思想是“智能源于身体与环境的互动”&#xff0c;而非仅仅依赖于抽象的计算或符号处理。…...

java -jar命令运行 jar包时如何运行外部依赖jar包

java -jar命令运行 jar包时如何运行外部依赖jar包 场景&#xff1a; 打包发不完,运行时。发现一个问题&#xff0c; java java.lang.NoClassDefFoundError: org/apache/commons/lang3/ArrayUtils 显示此&#xff0c;基本表明&#xff0c;没有这个依赖&#xff0c;如果在开发…...

Linux进程信号(一)之信号的入门

文章目录 信号入门1. 生活角度的信号2. 技术应用角度的信号3. 注意4. 信号概念5.用kill -l命令可以察看系统定义的信号列表6. 信号处理常见方式 信号入门 1. 生活角度的信号 你在网上买了很多件商品&#xff0c;再等待不同商品快递的到来。但即便快递没有到来&#xff0c;你也…...

腾讯云MCP数据智能处理:简化数据探索与分析的全流程指南

引言 在当今数据驱动的商业环境中&#xff0c;企业面临着海量数据处理和分析的挑战。腾讯云MCP(Managed Cloud Platform)提供的数据智能处理解决方案&#xff0c;为数据科学家和分析师提供了强大的工具集&#xff0c;能够显著简化数据探索、分析流程&#xff0c;并增强数据科学…...

曝光融合(Exposure Fusion)

一、背景介绍 图像融合算法里面&#xff0c;hdr图像进行融合&#xff0c;拓宽动态范围的操作非常常见。 常用的hdr融合算法通常有两类&#xff1a; 1、不同曝光的ldr图像先进行hdr融合&#xff0c;得到高bit位的hdr图像&#xff0c;再通过tonemaping算法得到结果如图像。 2、不…...

无人机减震模块运行与技术要点分析!

一、减震模块的运行方式 1. 多级减震结构 两级减震设计&#xff1a;采用第一级减震组件&#xff08;如减震球、锥面减震垫&#xff09;吸收高频振动&#xff0c;第二级减震组件&#xff08;如减震环、负重物&#xff09;进一步过滤低频振动。例如&#xff0c;通过硅胶减震球…...

CVPR2025 | 首个多光谱无人机单目标跟踪大规模数据集与统一框架, 数据可直接下载

论文介绍 题目&#xff1a;MUST: The First Dataset and Unified Framework for Multispectral UAV Single Object Tracking 期刊&#xff1a;IEEE/CVF Computer Vision and Pattern Recognition Conference 论文&#xff1a;https://arxiv.org/abs/2503.17699 数据&#x…...

嵌入式故障码管理系统设计实现

文章目录 前言一、故障码管理系统概述二、核心数据结构设计2.1 故障严重等级定义2.2 模块 ID 定义2.3 故障代码结构2.4 故障记录结构 三、故障管理核心功能实现3.1 初始化功能3.2 故障记录功能3.3 记录查询与清除功能3.4 系统自检功能 四、故障存储实现4.1 Flash 存储实现4.2 R…...

若依框架Consul微服务版本

1、最近使用若依前后端分离框架改造为Consul微服务版本 在这里分享出来供大家参考 # Consul微服务配置参数已经放置/bin/Consul微服务配置目录 仓库地址&#xff1a; gitee&#xff1a;https://gitee.com/zlxls/Ruoyi-Consul-Cloud.git gitcode&#xff1a;https://gitcode.c…...

【风控】用户特征画像体系

一、体系架构概述 1.1 核心价值定位 风控特征画像体系是通过多维度数据融合分析&#xff0c;构建客户风险全景视图的智能化工具。其核心价值体现在&#xff1a; 全周期覆盖&#xff1a;贯穿客户生命周期的营销、贷前、贷中、贷后四大场景立体化刻画&#xff1a;整合基础数据…...

【Java微服务组件】分布式协调P1-数据共享中心简单设计与实现

欢迎来到啾啾的博客&#x1f431;。 记录学习点滴。分享工作思考和实用技巧&#xff0c;偶尔也分享一些杂谈&#x1f4ac;。 欢迎评论交流&#xff0c;感谢您的阅读&#x1f604;。 目录 引言设计一个共享数据中心选择数据模型键值对设计 数据可靠性设计持久化快照 &#xff08…...

数据库--向量化基础

本文包含内容有: 向量化、SIMD的概念及关系SSE,AVX-512八种基础的SIMD操作,并用具体例子解释,给出伪代码。一、快速了解向量化、SIMD 1.1 向量化 向量化是指将原本需要循环处理的多个数据元素,通过一条指令同时处理多个数据,从而减少循环次数,提高计算效率。 传统方式…...

handsome主题美化及优化:10.1.0最新版 - 2

文章目录 前言基础设置优化开启全站 HTTPS添加 GZIP 压缩美化永久链接自定义后台路径启用 Emoji 支持 功能增强每日新闻自动更新文章嵌入外部网页时光机栏目配置自定义音乐播放器音量 自定义CSS配置文章标题居中显示标题背景美化文章版式优化LOGO 扫光特效头像动画效果图片悬停…...

JWT令牌

1. JWT概述 JWT即JSON Web Token&#xff0c;是一个开放标准&#xff0c;用于在各方之间安全地传输信息。并且JWT经过数字签名&#xff0c;安全性高。通俗来说&#xff0c;也就是以JSON形式作为Web应用中的令牌&#xff0c;用于信息传输&#xff0c;在数据传输过程中可以完成数…...

Qwen3技术报告解读

https://github.com/QwenLM/Qwen3/blob/main/Qwen3_Technical_Report.pdf 节前放模型&#xff0c;大晚上的发技术报告。通义&#xff0c;真有你的~ 文章目录 预训练后训练Long-CoT Cold StartReasoning RLThinking Mode FusionGeneral RLStrong-to-Weak Distillation 模型结构…...

RAG-MCP:突破大模型工具调用瓶颈,告别Prompt膨胀

大语言模型&#xff08;LLM&#xff09;的浪潮正席卷全球&#xff0c;其强大的自然语言理解、生成和推理能力&#xff0c;为各行各业带来了前所未有的机遇。然而&#xff0c;正如我们在之前的探讨中多次提及&#xff0c;LLM并非万能。它们受限于训练数据的时效性和范围&#xf…...

Flask框架入门与实践

Flask框架入门与实践 Flask是一个轻量级的Python Web框架&#xff0c;以其简洁、灵活和易于上手的特点深受开发者喜爱。本文将带您深入了解Flask的核心概念、基本用法以及实际应用。 什么是Flask&#xff1f; Flask是由Armin Ronacher于2010年开发的微型Web框架。与Django等…...

PD 分离推理的加速大招,百度智能云网络基础设施和通信组件的优化实践

为了适应 PD 分离式推理部署架构&#xff0c;百度智能云从物理网络层面的「4us 端到端低时延」HPN 集群建设&#xff0c;到网络流量层面的设备配置和管理&#xff0c;再到通信组件和算子层面的优化&#xff0c;显著提升了上层推理服务的整体性能。 百度智能云在大规模 PD 分离…...

罗杰斯高频板技术解析:低损耗基材如何定义 5G 通信未来

在 5G 通信与尖端电子技术加速融合的时代&#xff0c;高频 PCB 作为信号传输的核心载体&#xff0c;对材料性能与工艺精度提出了极致要求。猎板 PCB 深耕行业多年&#xff0c;始终以罗杰斯&#xff08;Rogers&#xff09;板材为核心介质&#xff0c;构建起从材料适配到精密制造…...

QML 动画控制、顺序动画与并行动画

目录 引言相关阅读基础属性说明工程结构示例代码解析示例1&#xff1a;手动控制动画&#xff08;ControlledAnimation.qml&#xff09;示例2&#xff1a;顺序动画&#xff08;SequentialAnimationDemo.qml&#xff09;示例3&#xff1a;并行动画&#xff08;ParallelAnimationD…...

【动态导通电阻】GaN HEMT动态导通电阻的精确测量

2023 年 7 月,瑞士洛桑联邦理工学院的 Hongkeng Zhu 和 Elison Matioli 在《IEEE Transactions on Power Electronics》期刊发表了题为《Accurate Measurement of Dynamic ON-Resistance in GaN Transistors at Steady-State》的文章,基于提出的稳态测量方法,研究了氮化镓(…...

2:OpenCV—加载显示图像

加载和显示图像 从文件和显示加载图像 在本节中&#xff0c;我将向您展示如何使用 OpenCV 库函数从文件加载图像并在窗口中显示图像。 首先&#xff0c;打开C IDE并创建一个新项目。然后&#xff0c;必须为 OpenCV 配置新项目。 #include <iostream> #include <ope…...

Qt控件:交互控件

交互控件 1. QAction核心功能API 1.2 实例应用情况应用场景 1. QAction ##1. 1简介与API QAction 是一个核心类&#xff0c;用于表示应用程序中的一个操作&#xff08;如菜单项、工具栏按钮或快捷键触发的功能&#xff09;。它将操作的逻辑与 UI 表现分离&#xff0c;使代码更…...