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

08-Oracle游标管理(定义,打开、获取数据及关闭游标)

目标

1.确定何时需要显示游标
2.声明、打开和关闭显示游标
3.从显示游标中提取数据
4.了解与游标有关的属性
5.使用游标FOR循环检索游标中的数据
6.在游标FOR循环的子查询中声明游标
7.评估使用逻辑运算符结合在一起的布尔条件

游标

1、在使用一个PL/SQL块来执行DML语句只返回一行结果SELECT语句时,将创建一个隐式游标
2、可用将游标视为内存中的一个数组或区域,它包含当前处理的值。
3、当SELECT语句返回多行结果时,用户必须创建一个显示游标。然后查询所返回的数据就将放在显示游标中进行处理。

示例:显示当用户没有创建一个显示游标以获得多行结果时发生的情况。

DECLAREv_title books.title%TYPE;v_retail books.retail%TYPE;	
BEGINSELECT title,retailINTO v_title,v_retailFROM books NATURAL JOIN orderitemsWHERE order#=1012;DBMS_OUTPUT.PUT_LINE('Books title: '||v_title||' Retail price: '||v_retail);
END;
示例中虽然包括了一个WHERE子句来确保只处理一个订单,但是在这个订单中包括了不止一本书。当PL/SQL块将会检索多个行时,必须使用显示游标来存储要处理的数据。与Oracle自动维护的隐式游标不同,必须通过PL/SQL语句来手工声明、打开和关闭显示游标。

声明显示游标

显示游标是在PL/SQL块的声明部分声明的。
声明游标的语法:
CURSOR cursor_name IS selectquery;

前面示例中,需要一个显示游标来检索订单1012中的图书的书名和零售价。

DECLARECURSOR books_cursor ISSELECT title,retailFROM books NATURAL JOIN orderitemsWHERE order#=1012;
示例中声明了一个名为BOOKS_CURSOR的游标来存储行。然后SELECT语句将检索图书的书名和零售价。
游标的结构是由使用SELECT语句检索的数据定义的
注意:虽然需要每一本书的ISBN来联接BOOKS表和ORDERITEMS表,以便确定要选择的正确图书,但是在游标本身中并没有包括这一列。
目前只是声明了游标,在进行任何处理之前,必须首先打开游标。

打开显示游标

在打开游标时,将分配必要的内存,执行SELECT语句,然后SELECT子句检索的数据加载到游标中。
打开游标的语法
OPEN cursor_name;示例:
OPEN books_cursor;打开游标之后,可以将游标中包含的数据赋给变量以进行处理

关闭显示游标

从游标中检索了所有数据之后,必须明确关闭它。
PL/SQL块的可执行部分使用CLOSE命令来关闭显示游标
CLOSE命令的语法
CLOSE cursor_nameCLOSE books_cursor;

从显示游标中提取数据

SELECT语句不能用来检索显示游标中的数据。
必须使用FETCH命令来提取这种游标中的数据。
FETCH命令检索游标中的行,然后将值赋给变量。注意,必须首先在PL/SQL块的声明部分声明变量,然后才能在可执行部分引用它们。
FETCH命令语法:
FETCH cursor_name INTO variablename[,…variablename];FETCH books_cursor INTO v_title,v_retail;

示例:显示游标的使用

DECLAREv_title books.title%TYPE;v_retail books.retail%TYPE;CURSOR books_cursor ISSELECT title,retailFROM books NATURAL JOIN orderitemsWHERE order#=1012;
BEGINOPEN books_cursor;FETCH books_cursor INTO v_title,v_retail;DBMS_OUTPUT.PUT_LINE('Books title: '||v_title||' Retail price: '||v_retail);CLOSE books_cursor;
END;
解释示例语句
声明部分定义了变量v_title v_retail 以及名为books_cursor 的游标。
游标是由一个SELECT语句定义的,该语句检索包括在订单1012中的图书的书名和零售价。
这个块的可执行部分,打开了之前声明的游标。
FETCH语句用来检索游标中的行并将值赋给v_title v_retail变量。
包括了 DBMS_OUTPUT程序包以显示变量的内容。

结果

结果中发现只有一行数据输出

 独立执行这个PL/SQL块的SELECT语句,显示

要想显示订单1012中每一本书的书名和零售价,应该将检索和显示游标内容的语句包括在一个循环中
基本、FORWHILE循环都要求包括某种条件来确定应该在何时终止循环。
每一种游标(隐式游标和显示游标)都有4个可以用作PL/SQL块中的条件的属性。
最经常用来控制循环的三个游标属性是:
%ROWCOUNT
%FOUND
%NOTFOUND
%ROWCOUNT属性包含一个整数值,代表在执行块时处理的行数。
%FOUND%NOTFOUND属性用来反映是否已经找到了要处理的行。如果在执行块的过程中影响了一行或多行,那么%FOUND属性将包含布尔值TRUE,相反,如果没有行受到影响,那么%NOTFOUND属性为TRUE
还有一个属性,%ISOPEN通常用来确定在执行PL/SQL块之后是否关闭游标。

游标属性

说明

%ROWCOUNT

指出处理的行

%FOUND

如果处理了一行或多行,这包含值TRUE——如果没有处理行,则为FALSE

%NOTFOUND

如果没有处理行,则包含值TRUE——如果处理了一行或多行,则为FALSE

%ISOPEN

如果在处理之后不关闭数据,这包含值TRUE——如果关闭游标,则为FALSE。在发生隐式游标时,由于它是自动关闭的,因此这个值在处理之后总是FALSE

如果在一个PL/SQL块中包括了一个基本循环来控制一组语句的执行,那么必须包括一个条件来结束这个循环。
可以将条件指定为“当游标不再包含任何值时,就结束循环”。
DECLAREv_title books.title%TYPE;v_retail books.retail%TYPE;CURSOR books_cursor ISSELECT title,retailFROM books NATURAL JOIN orderitemsWHERE order#=1012;
BEGINOPEN books_cursor;LOOPFETCH books_cursor INTO v_title,v_retail;EXIT WHEN books_cursor%NOTFOUND;DBMS_OUTPUT.PUT_LINE('Books title: '||v_title||' Retail price: '||v_retail);END LOOP;CLOSE books_cursor;
END;
显示结果

游标FOR循环

因为经常使用循环来控制游标中检索的行的处理,所有Oracle包括了一种快捷方法来处理PL/SQL块中的显示游标。游标FOR循环可以用来自动(或隐含)打开和关闭一个游标,也可以用来提取游标中的数据
游标FOR循环的语法:
FOR record_name IN cursor_name LOOPstatements;[statement;…]
END LOOP;
说明:
不是检索游标中的行并向变量赋值,而是将行的内容赋给一个记录
“记录”是一种复合数据类型可以使其结构与检索的行的结构相同。要想指定记录的结构与检索的行的结构相同,可以在定义记录时使用%ROWTYPE属性。
%TYPE属性相似, %TYPE用来定义基于一个单独列的变量,而%ROWTYPE属性定义了基于数据库表中包含的所有列的记录。

示例:包含游标FOR循环的PL/SQL

DECLARECURSOR books_cursor ISSELECT title,retailFROM books NATURAL JOIN orderitemsWHERE order#=1012;r_books books%ROWTYPE;
BEGINFOR r_books IN books_cursor LOOPDBMS_OUTPUT.PUT_LINE('Books title: '||r_books.title||' Retail price: '||r_books.retail);END LOOP;
END;
示例说明
在块的声明部分定义了记录 r_books,它具有books表的结构。
可执行部分包含一个游标FOR循环,它隐含打开books_cursor的游标,并将其内容赋给r_books记录
对名为books_cursor的游标中包含的每一行都执行一次这个游标FOR循环。这个循环中包含的唯一一个语句将显示当前正在处理的行。
注意:在DBMS_OUTPUT程序包显示的字符引用了记录中包含的列名称。因为将数据赋值给一个记录而不是单独的变量,所以显示值的唯一方法就是指定包含所需数据的列名称。在使用%ROWTYPE属性定义这个记录时,还为从books表中检索的各个值指定了列名称。要想指定应该显示哪一列或哪些列,必须在列名称之前添加包含数据的记录的名称,如r_books.title
在处理了books_cursor中包含的最后一行之后,这个循环将会终止,将隐含关闭游标。
在使用游标FOR循环时,可以使用一个子查询来声明游标
不在PL/SQL块中的声明部分声明游标,可以使用IN子句中的SELECT语句来代替游标名称。
注意:因为游标没有一个名字,所以不能应用游标属性,例如%NOTFOUND
示例:使用子查询的游标FOR循环
BEGINFOR r_books IN (SELECT title,retailFROM books NATURAL JOIN orderitemsWHERE order#=1012) LOOPDBMS_OUTPUT.PUT_LINE('Books title: '||r_books.title||' Retail price: '||r_books.retail);END LOOP;
END;

修改示例,实现确定订单1012中购买的图书以及总应付款额。

DECLAREv_ordertotal NUMBER(5,2):=0;
BEGINFOR r_books IN (SELECT title,retail,quantityFROM books NATURAL JOIN orderitemsWHERE order#=1012) LOOPDBMS_OUTPUT.PUT_LINE('Books title: '||r_books.title||' Retail price: '||r_books.retail);v_ordertotal :=v_ordertotal + r_books.retail*r_books.quantity;END LOOP;DBMS_OUTPUT.PUT_LINE('Total Amount Due: '||v_ordertotal);
END;

带有逻辑运算符的游标循环控制

如果只需要处理特定数量的行,应该怎么办?
示例:确定books表中5本价格最高的图书。
分析:
考虑可以创建以一个子查询,选择ROWNUM小于或等于5的图书。
还可以在PL/SQL块中嵌一个游标,从游标中提取行时,提取它们的顺序与最初将它们放在游标中的顺序相同。要想确保游标中的第一行包含零售价最高的图书,可以在声明游标时向定义游标的SELECT语句添加一个ORDER BY子句,根据Retail列降序排列。
在使用%ROWCOUNT属性作为循环条件时,用户可以指定从游标中提取的行,可以在循环条件中使用AND逻辑运算符以及%FOUND属性,以便确保只有在游标包含额外的行时才会继续循环。

DECLAREv_title books.title%TYPE;v_retail books.retail%TYPE;v_number NUMBER(2):=&How_Many_Books_To_Display;CURSOR books_cursor ISSELECT title,retailFROM booksORDER BY retail DESC;	
BEGINOPEN books_cursor;FETCH books_cursor INTO v_title,v_retail;WHILE books_cursor%ROWCOUNT<=v_number ANDbooks_cursor%FOUND LOOPDBMS_OUTPUT.PUT_LINE(v_title||','||v_retail);FETCH books_cursor INTO v_title,v_retail;END LOOP;CLOSE books_cursor;
END;

v_number NUMBER(2):=&How_Many_Books_To_Display;要求用户输入要显示的图书数量,如果用户输出数字3,那么在输出中将显示3本价格最高的图书
WHILE books_cursor%ROWCOUNT<=v_number AND books_cursor%FOUND 两个条件使用AND逻辑运算符结合在一起,所有这两个条件都必须为TRUE,否则这个循环就不会执行
FETCH books_cursor INTO v_title,v_retail;WHILE语句之前,确保在访问WHILE之前找到了一行。如果没有提取任何行,那么无论用户要求多少本书或者游标中实际存在多少行,%FOUND属性都将为NULL,循环不会执行

AND

TRUE

FALSE

NULL

OR

TRUE

FALSE

NULL

TRUE

TRUE

FALSE

NULL

TRUE

TRUE

TRUE

TRUE

FALSE

FALSE

FALSE

FALSE

FALSE

TRUE

FALSE

NULL

NULL

NULL

FALSE

NULL

NULL

TRUE

NULL

NULL

游标的使用——处理隐式游标

显式游标主要是用于对查询语句的处理,尤其是在查询结果为多条记录的情况下;而对于非查询语句,如修改、删除操作,则由 ORACLE 系统自动地为这些操作设置游标并创 建其工作区,这些由系统隐含创建的游标称为隐式游标,隐式游标的名字为 SQL ,这是由ORACLE 系统定义的。
对于隐式游标的操作,如定义、打开、取值及关闭操作,都由 ORACLE系统自动地完成,无需用户进行处理。
用户只能通过隐式游标的相关属性,来完成相应的操作。在隐式游标的工作区中,所存放的数据是与用户自定义的显示游标无关的、最新处理的一条 SQL语句所 包含的数据。

格式调用为: SQL%

注: INSERT, UPDATE, DELETE, SELECT 语句中不必明确定义游标。

隐式游标属性
SQL %FOUND 布尔型属性 , 当最近一次读记录时成功返回,则值为 true
SQL %NOTFOUND 布尔型属性 , %found 相反;
SQL %ROWCOUNT 数字型属性 , 返回已从游标中读取得记录数;
SQL %ISOPEN 布尔型属性 , 取值总是 FALSE SQL 命令执行完毕立即关闭隐式游标。

:删除图书库存中某出版社出版的图书,如果不再存在该出版社的图书,则在出版设信息中删除该出版社信息.

DECLARE
v_pubid books.pubid%TYPE :=&in_pubid;
BEGINDELETE FROM books WHERE pubid=v_pubid;DBMS_OUTPUT.PUT_LINE('删除出版社编号为'||v_pubid||'的图书记录');COMMIT;IF SQL%NOTFOUND THENDELETE FROM publisher WHERE pubid=v_pubid;END IF;COMMIT;
END;

练习

1.删除订单表中指定客户编号的订单信息,如果不再存在该客户的订单,则在客户信息中删除该客户信息.

总结

从一个表中检索多个行时,就需要显示游标
在使用数据填充显示游标之前必须定义并打开它
在打开游标时,将执行定义这个游标的SELECT语句
可以使用FETCH命令来检索显示游标中的数据
必须关闭显示游标
游标FOR循环将隐含(或自动)打开和关闭显示游标并提取游标中的数据
游标属性可以用来确定游标是否是打开的以及游标所处理的行数(如果有)

本人从事软件项目开发20多年,2005年开始从事Java工程师系列课程的教学工作,录制50多门精品视频课程,包含java基础,jspweb开发,SSH,SSM,SpringBoot,SpringCloud,人工智能,在线支付等众多商业项目,每门课程都包含有项目实战,上课PPT,及完整的源代码下载,有兴趣的朋友可以看看我的在线课堂

讲师课堂链接:https://edu.csdn.net/lecturer/893

相关文章:

08-Oracle游标管理(定义,打开、获取数据及关闭游标)

目标 1.确定何时需要显示游标2.声明、打开和关闭显示游标3.从显示游标中提取数据4.了解与游标有关的属性5.使用游标FOR循环检索游标中的数据6.在游标FOR循环的子查询中声明游标7.评估使用逻辑运算符结合在一起的布尔条件游标 1、在使用一个PL/SQL块来执行DML语句或只返回一行结…...

Python判断字符串是否包含特定子串的7种方法

目录1、使用 in 和 not in2、使用 find 方法3、使用 index 方法4、使用 count 方法5、通过魔法方法6、借助 operator7、使用正则匹配转自&#xff1a;https://cloud.tencent.com/developer/article/1699719我们经常会遇这样一个需求&#xff1a;判断字符串中是否包含某个关键词…...

aop实现接口访问频率限制

引言 项目开发中我们有时会用到一些第三方付费的接口&#xff0c;这些接口的每次调用都会产生一些费用&#xff0c;有时会有别有用心之人恶意调用我们的接口&#xff0c;造成经济损失&#xff1b;或者有时需要对一些执行时间比较长的的接口进行频率限制&#xff0c;这里我就简…...

Hive---窗口函数

Hive窗口函数 其他函数: Hive—Hive函数 文章目录Hive窗口函数开窗数据准备建表导入数据聚合函数window子句LAG(col,n,default_val) 往前第 n 行数据LEAD(col,n, default_val) 往后第 n 行数据ROW_NUMBER() 会根据顺序计算RANK() 排序相同时会重复&#xff0c;总数不会变DENSE…...

JavaSe第7次笔记

1. C语言里面&#xff0c;NULL是0地址。Java中null和0地址没关系。 2.数组可以做方法的返回值。 3.可以使用变量作为数组的个数开辟空间。 4.断言assert&#xff0c;需要设置。 5.排序&#xff1a;Arrays. sort(array); 6.查找&#xff1a; int index Arrays. binarySea…...

什么是 Service 以及描述下它的生命周期。Service 有哪些启动方法,有 什么区别,怎样停用 Service?

在 Service 的生命周期中,被回调的方法比 Activity 少一些,只有 onCreate, onStart, onDestroy, onBind 和 onUnbind。 通常有两种方式启动一个 Service,他们对 Service 生命周期的影响是不一样的。 1. 通过 startService Service 会经历 onCreate 到 onStart,然后处于运行…...

Redis部署

JAVA安装 mkdir /usr/local/javacd /usr/local/java/wget --no-check-certificate --no-cookies --header "Cookie: oraclelicenseaccept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u13…...

AT32F437制作Bootloader然后实现Http OTA升级

首先创建一个AT32F437的工程&#xff0c;然后发现调试工程配置这里的型号和创建工程选的型号不一致&#xff0c;手动更改一下&#xff0c;使用PW Link下载程序的话还要配置一下pyocd.exe的路径。 打开drv_clk.c文件的调试功能看下系统时钟频率。 项目使用的是AT32F437VMT7芯片&…...

Springboot项目启动初始化数据缓存

1.从Java EE5规范开始&#xff0c;Servlet中增加了两个影响Servlet生命周期的注解&#xff0c; PostConstruct和PreDestroy&#xff0c;这两个注解被用来修饰一个非静态的void&#xff08;&#xff09;方法&#xff0c;被PostConstruct修饰的方法会在服务器加载Servlet的时候运…...

深度学习必备知识——模型数据集Yolo与Voc格式文件相互转化

在深度学习中&#xff0c;第一步要做的往往就是处理数据集,尤其是学习百度飞桨PaddlePaddle的小伙伴&#xff0c;数据集经常要用Voc格式的&#xff0c;比如性能突出的ppyolo等模型。所以学会数据集转化的本领是十分必要的。这篇博客就带你一起进行Yolo与Voc格式的相互转化&…...

数据、数据资源及数据资产管理的区别

整理不易&#xff0c;转发请注明出处&#xff0c;请勿直接剽窃&#xff01; 点赞、关注、不迷路&#xff01; 摘要&#xff1a;数据、数据资源、数据资产 数据、数据资源及数据资产的区别 举例 CRM系统建设完成后会有很多数据&#xff0c;这些数据就是原始数据&#xff0c;业务…...

标度不变性(scale invariance)与无标度(scale-free)概念辨析

文章目录标度标度种类名义标度序级标度等距标度比率标度常用标度方法不足标度不变性标度不变&#xff08;Scale-invariant&#xff09;曲线和自相似性&#xff08;self-similarity&#xff09;射影几何分形随机过程中的标度不变性标度不变的 Tweedie distribution普适性&#x…...

WMS仓库管理系统解决方案,实现仓库管理一体化

仓库是企业的核心环节&#xff0c;若没有对库存的合理控制和送货&#xff0c;将会造成成本的上升&#xff0c;服务品质的难以得到保证&#xff0c;进而降低企业的竞争能力。WMS仓库管理系统包括基本信息&#xff0c;标签&#xff0c;入库&#xff0c;上架&#xff0c;领料&…...

css常见定位、居中方案_css定位居中

一、 定位分类 1、静态定位 position:static;&#xff08;默认&#xff0c;具备标准流条件&#xff09; 2、相对定位 position:relative; 通过 top 或者 bottom 来设置 Y 轴位置 通过 left 或者 right 来设置 X 轴位置 特点&#xff1a; 相对定位不会脱离文档流相对于自…...

【微信小程序】-- 自定义组件 -- 创建与引用 样式(三十二)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…...

ArangoDB——AQL编辑器

AQL 编辑器 ArangoDB 的查询语言称为 AQL。AQL与关系数据库管理系统 (RDBMS)区别在于其更像一种编程语言&#xff0c;更自然地适合无模式模型&#xff0c;并使查询语言非常强大&#xff0c;同时保持易于读写。数据建模概念 数据库是集合的集合。集合存储记录&#xff0c;称为文…...

Lesson 9.1 集成学习的三大关键领域、Bagging 方法的基本思想和 RandomForestRegressor 的实现

文章目录一、 集成学习的三大关键领域二、Bagging 方法的基本思想三、RandomForestRegressor 的实现在开始学习之前&#xff0c;先导入我们需要的库&#xff0c;并查看库的版本。 import numpy as np import pandas as pd import sklearn import matplotlib as mlp import sea…...

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

解决了官方示例指令需要科学上网才能运行的问题&#xff08;通过手动下载二进制文件和拉取官方fabric-samples&#xff09;。具体的将bootstrap.sh脚本解读了一遍 具体可以参照我的博客 fabric中bootstrap.sh到底帮助我们干了什么&#xff1f;&#xff08;curl -sSL https://bi…...

Android---系统启动流程

目录 Android 系统启动流程 init 进程分析 init.rc 解析 Zygote 概叙 Zygote 触发过程 Zygote 启动过程 什么时Runtime&#xff1f; System Server 启动流程 Fork 函数 总结 面试题 Android 是 google 公司开发的一款基于 Linux 的开源操作系统。 Android 系统启动…...

【网络】http协议

&#x1f941;作者&#xff1a; 华丞臧. &#x1f4d5;​​​​专栏&#xff1a;【网络】 各位读者老爷如果觉得博主写的不错&#xff0c;请诸位多多支持(点赞收藏关注)。如果有错误的地方&#xff0c;欢迎在评论区指出。 推荐一款刷题网站 &#x1f449; LeetCode刷题网站 文章…...

Thread::interrupted() 什么意思? 如何中断线程?

1、答&#xff1a; Thread::interrupted() 是一个静态方法&#xff0c;用于判断当前线程是否被中断&#xff0c;并清除中断标志位。 具体来说&#xff0c;当一个线程被中断后&#xff0c;它的中断状态将被设置为 true。如果在接下来的某个时间点内调用了该线程的 interrupted…...

Oracle OCP 19c 考试(1Z0-083)中关于Oracle不完全恢复的考点(文末附录像)

欢迎试看博主的专著《MySQL 8.0运维与优化》 下面是Oracle 19c OCP考试&#xff08;1Z0-083&#xff09;中关于Oracle不完全恢复的题目: A database is configured in ARCHIVELOG mode A full RMAN backup exists but no control file backup to trace has been taken A media…...

一起来学习配置Combo接口吧!

Combo接口是一个光电复用的逻辑接口&#xff0c;一个Combo接口对应设备面板上一个GE电接口和一个GE光接口。电接口与其对应的光接口是光电复用关系&#xff0c;两者不能同时工作&#xff08;当激活其中一个接口时&#xff0c;另一个接口就自动处于禁用状态&#xff09;&#xf…...

C++模拟实现红黑树

目录 介绍----什么是红黑树 甲鱼的臀部----规定 分析思考 绘图解析代码实现 节点部分 插入部分分步解析 ●父亲在祖父的左&#xff0c;叔叔在祖父的右&#xff1a; ●父亲在祖父的右&#xff0c;叔叔在祖父的左&#xff1a; 测试部分 整体代码 介绍----什么是红黑树 红…...

HTTPS协议之SSL/TLS详解(下)

目录 前言&#xff1a; SSL/TLS详解 HTTP协议传输安全性分析 对称加密 非对称加密 证书 小结&#xff1a; 前言&#xff1a; 在网络世界中&#xff0c;存在着运营商劫持和一些黑客的攻击。如果明文传输数据是很危险的操作&#xff0c;因为我们不清楚中间传输过程中就被哪…...

OLE对象是什么?为什么要在CAD图形中插入OLE对象?

OLE对象是什么&#xff1f;OLE对象的意思是指对象连接与嵌入。那为什么要在CAD图形中插入OLE对象&#xff1f;一般情况下&#xff0c;在CAD图形中插入OLE对象&#xff0c;是为了将不同应用程序的数据合并到一个文档中。本节内容小编就来给大家分享一下在CAD图形中插入OLE对象的…...

【微信小程序】-- 自定义组件 -- 数据、方法和属性(三十三)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…...

【Spring 深入学习】AOP的前世今生之代理模式

AOP的前世今生之代理模式1. 概述 什么是代理模式呢&#xff1f;&#xff1f;&#xff1f; 在不修改原有代码 或是 无法修改原有代码的情况下&#xff0c;增强对象功能&#xff0c;替代原来的对象去完成功能&#xff0c;从而达成了拓展的目的。 先给大家看下 JavaScript中实现方…...

操作系统复试

2017软学 给出操作系统的定义&#xff0c;分别从资源管理&#xff0c;任务调度&#xff0c;用户接口等三个方面论述操作系统的职能 操作系统是位于硬件层之上、所有其他系统软件层之下的一个系统软件&#xff0c;使得管理系统中的各种软件和硬件资源得以充分利用&#xff0c;方…...

藏经阁(五)温湿度传感器 SHT3x-DIS 手册 解析

文章目录芯片特性芯片内部框图芯片引脚定义芯片温湿度范围芯片寄存器以及时序讲解信号转换公式芯片特性 湿度和温度传感器完全校准&#xff0c;线性化温度补偿数字输出供电电压范围宽&#xff0c;从2.4 V到5.5 VI2C接口通讯速度可达1MHz和两个用户可选地址典型精度 2% RH和 0.…...

PCB焊盘设计基本原则

SMT的组装质量与PCB焊盘设计有直接的关系&#xff0c;焊盘的大小比例十分重要。如果PCB焊盘设计正确&#xff0c;贴装时少量的歪斜可以再次回流焊纠正(称为自定位或自校正效应)&#xff0c;相反&#xff0c;如果PCB焊盘设计不正确&#xff0c;即使贴装位置十分准确&#xff0c;…...

mysql锁分类大全

前言 为什么会出现锁 MySQL中的锁是为了保证并发操作的正确性和一致性而存在的。 当多个用户同时对同一份数据进行操作时&#xff0c;如果不加控制地进行读写操作&#xff0c;就可能导致数据不一致的问题。例如&#xff0c;当多个用户同时对同一行数据进行写操作时&#xff…...

推荐几款主流好用的远程终端连接管理软件

一、介绍 远程终端连接管理软件是管理服务器、虚拟机等远程计算机系统不可或缺的工具之一&#xff0c;它可以通过网络连接到另一台计算机&#xff0c;以执行命令、编辑文件或进行其他管理任务&#xff0c;下面我将为大家介绍几款主流好用的远程终端连接管理软件&#xff0c;并…...

描述性统计

参考文献 威廉 M 门登霍尔 《统计学》 文章目录定性数据的描述方法条形图饼图帕累托图定量数据点图茎叶图频数分布直方图MINITAB 工具在威廉《统计学》一书将统计学分为描述统计学和推断统计学&#xff0c;他们的定义分别如下&#xff1a;描述统计学&#xff1a;致力于数据集的…...

第十四届蓝桥杯三月真题刷题训练——第 7 天

目录 第 1 题&#xff1a;三角回文数 问题描述 答案提交 运行限制 代码&#xff1a; 第 2 题&#xff1a;数数 问题描述 答案提交 运行限制 代码&#xff1a; 第 3 题&#xff1a;倍数问题_同余定理_分情况讨论 题目描述 输入描述 输出描述 输入输出样例 运行限…...

剑指 Offer 57. 和为s的两个数字

一、题目 输入一个递增排序的数组和一个数字s&#xff0c;在数组中查找两个数&#xff0c;使得它们的和正好是s。如果有多对数字的和等于s&#xff0c;则输出任意一对即可。 示例 1&#xff1a; 输入&#xff1a;nums [2,7,11,15], target 9 输出&#xff1a;[2,7] 或者 [7…...

PDF转word在线转换方法!操作简单又高效

相信很多已经工作的人都知道&#xff0c;PDF文件格式的优点在于兼容性强、安全性高&#xff0c;而且查看和传输给他人都很方便。但是&#xff0c;这种格式的文件也有不太方便的地方&#xff0c;那就是不能对文件内容进行编辑和修改。对于许多人来说&#xff0c;如果想要编辑修改…...

Jquery项目中使用vue.js

大家在工作的情况中&#xff0c;可能会遇到之前的老项目采用jq书写&#xff0c;或者修改或者新增功能在jq中&#xff0c;原始jq的项目,代码可维护性很差,一个页面几千行jq,可维护性很差,工作量巨大&#xff0c;所以这个时候大家可以引入vue.js。 第一步&#xff1a;引入vue.js…...

蓝桥杯 删除字符

题目描述 给定一个单词&#xff0c;请问在单词中删除 t 个字母后&#xff0c;能得到的字典序最小的单词是什么&#xff1f; 输入描述 输入的第一行包含一个单词&#xff0c;由大写英文字母组成。 第二行包含一个正整数 t。 其中&#xff0c;单词长度不超过 100&#xff0c…...

析构函数 对象数组 对象指针

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章 &#x1f525;座右铭&#xff1a;“不要等到什么都没有了&#xff0c;才下定决心去做” &#x1…...

Vue对Axios网络请求进行封装

一、为什么要对网络请求进行封装&#xff1f; 因为网络请求的使用率实在是太高了&#xff0c;我们有的时候为了程序的一个可维护性&#xff0c;会把同样的东西放在一起&#xff0c;后期找起来会很方便&#xff0c;这就是封装的主要意义。 二、如何进行封装&#xff1f; 1、将…...

Android framework HAL(HIDL)

简述 当你在Android系统中使用不同的硬件设备&#xff08;例如摄像头、传感器、音频设备等&#xff09;时&#xff0c;你需要与硬件抽象层&#xff08;HAL&#xff09;进行通信。 HAL是一个中间层&#xff0c;它充当了硬件和应用程序之间的桥梁。但是&#xff0c;由于硬件设备…...

QML 模型(ListModel)

LIstModel&#xff08;列表模型&#xff09; ListModel 是ListElement定义的简单容器&#xff0c;每个定义都包含数据角色。内容可以在 QML 中动态定义或显式定义。 属性&#xff1a; count模型中数据条目的数量dynamic动态角色&#xff0c;默认情况下&#xff0c;角色的类型…...

你还在调戏AI,有的公司已经用ChatGPT开展业务了

近日&#xff0c;OpenAI 正式宣布开放 ChatGPT 和 Whisper 两个模型的 API&#xff0c;API 版本的ChatGPT 不仅功能更多、性能更强&#xff0c;而且还更便宜一一相当于目前 GPT-3 模型价格打一折!划重点OpenAl正式开放 ChatGPT 和 Whisper 模型的 API&#xff0c;目前 SnapChat…...

DatenLord前沿技术分享 No.20

达坦科技专注于打造新一代开源跨云存储平台DatenLord&#xff0c;致力于解决多云架构、多数据中心场景下异构存储、数据统一管理需求等问题&#xff0c;以满足不同行业客户对海量数据跨云、跨数据中心高性能访问的需求。喷泉码具有极高的纠错能力&#xff0c;且具有低延迟、地复…...

基于vivado(语言Verilog)的FPGA学习(1)——了解viviado面板和编译过程

基于vivado&#xff08;语言Verilog&#xff09;的FPGA学习&#xff08;1&#xff09;——了解程序面板和编译过程 每日废话&#xff1a;最近找实习略微一些焦虑&#xff0c;不想找软件开发&#xff0c;虽然有些C和python基础&#xff08;之前上课学的&#xff09;&#xff0c;…...

PACS(CT、CR、DR、MR、DSA、RF医院影像管理系统源码)

PACS具体功能介绍&#xff1a; 病人、采集、观片、三维、报告、照相、退出、文件、图像采集、观片操作、三维、测量标注、诊断报告、照相打印、统计报表、系统管理、帮助、病人浏览器、选择数据源、打开图像、病人登记、工作列表、采集、打开画廊。 DICOM查询/获取&#xff1a…...

Centos7 安装Mysql8.0

1、到指定目录下下载安装包[rootVM-0-14-centos ~]# cd /usr/local/src2、下载mysql8[rootVM-0-14-centos src]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz3、解压mysql8, 通过xz命令解压出tar包&#xff0c; 然后通过t…...

2023年全国最新道路运输从业人员精选真题及答案18

百分百题库提供道路运输安全员考试试题、道路运输从业人员考试预测题、道路安全员考试真题、道路运输从业人员证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 181.某客运企业拥有55辆营运客车&#xff0c;下列关于该企业设置…...

web worker的基本使用案例

文件目录如下 代码按照顺序分别如下 webworker.html <!DOCTYPE html> <html lang"en"><head><meta charset"utf-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewpo…...