SQL for XML
关系数据模型与SQL
SQL for XML
模式名 | 功能 |
---|---|
RAW | 返回的行作为元素,列值作为元素的属性 |
AUTO | 返回表名对应节点名称的元素,每列的属性作为元素的属性输出输出,可形成简单嵌套结构 |
EXPLICIT | 通过SELECT语法定义输出XML结构 |
PATH | 列名或列别名作为XPATH表达式来处理 |
SQL Server中的FOR XML
子句允许开发者将查询结果转换成XML格式。这一特性非常实用,特别是在需要将关系型数据以XML格式交换或存储时。FOR XML
子句支持四种模式:AUTO
、RAW
、EXPLICIT
和PATH
。每种模式都有其特点和适用场景。下面我们将详细介绍这四种模式的基本语法和用法,结合例子进行说明。
我们先设计一个简单的关系表,并基于这个表创建四种 SQL for XML 模式的语句示例: RAW, AUTO, EXPLICIT, 和 PATH。
示例关系表:Employees
EmployeeID | Name | Position | Department |
---|---|---|---|
1 | Alice | Engineer | IT |
2 | Bob | Manager | HR |
3 | Charlie | Analyst | Finance |
以下是 SQL for XML 的四种模式的例子:
1. RAW 模式
直接将每一行封装为一个 <row>
元素:
SELECT EmployeeID, Name, Position, Department
FROM Employees
FOR XML RAW;
输出示例:
<row EmployeeID="1" Name="Alice" Position="Engineer" Department="IT" />
<row EmployeeID="2" Name="Bob" Position="Manager" Department="HR" />
<row EmployeeID="3" Name="Charlie" Position="Analyst" Department="Finance" />
2. AUTO 模式
根据查询中指定的列和表的关系,自动生成嵌套结构:
SELECT EmployeeID, Name, Position, Department
FROM Employees
FOR XML AUTO;
输出示例:
<Employees EmployeeID="1" Name="Alice" Position="Engineer" Department="IT" />
<Employees EmployeeID="2" Name="Bob" Position="Manager" Department="HR" />
<Employees EmployeeID="3" Name="Charlie" Position="Analyst" Department="Finance" />
如果包含表的层级关系,例如部门和员工:
SELECT Department, EmployeeID, Name
FROM Employees
FOR XML AUTO, ELEMENTS;
输出示例(嵌套结构):
<Employees><Department>IT</Department><EmployeeID>1</EmployeeID><Name>Alice</Name>
</Employees>
<Employees><Department>HR</Department><EmployeeID>2</EmployeeID><Name>Bob</Name>
</Employees>
3. EXPLICIT 模式
需要通过特定的列结构明确指定 XML 层级。规则:元数据列是SELECT查询必须先生成的满足规定要求的前两列,是Tag列和Parent列,作用是为结果提供层次信息:
- 第1列,列名固定为Tag,值是一个对应当前元素的标记号(整数类型)。 查询必须为从行集构造的每个元素提供标记号。
- 第2列,列名固定为Parent,值是父元素的标记号。Parent 列值为0或NULL表明相应的元素没有父级,该元素将作为顶级元素添加到 XML。
其他数据列名的指定方式ElementName!TagNumber!AttributeName!Directive,其中Directive 是可选的,提供有关 XML 构造的其他信息
注意:这种模式要求一个复杂的 UNION ALL
查询来构建 XML 的层级。
示例
SELECT 1 AS Tag,NULL AS Parent,EmployeeID AS [Employees!1!EmployeeID],Name AS [Employees!1!Name],NULL AS [Department!2!Department]
FROM Employees
UNION ALL
SELECT 2 AS Tag,1 AS Parent,NULL AS [Employees!1!EmployeeID],NULL AS [Employees!1!Name],Department AS [Department!2!Department]
FROM Employees
ORDER BY [Employees!1!EmployeeID]
FOR XML EXPLICIT;
输出示例:
<Employees EmployeeID="1" Name="Alice"><Department>IT</Department>
</Employees>
<Employees EmployeeID="2" Name="Bob"><Department>HR</Department>
</Employees>
<Employees EmployeeID="3" Name="Charlie"><Department>Finance</Department>
</Employees>
4. PATH 模式
允许自定义 XML 的元素和属性的路径,并且可以更灵活地指定输出。
示例 1:直接生成简单路径
SELECT EmployeeID AS "Employee/@ID",Name AS "Employee/Name",Position AS "Employee/Position"
FROM Employees
FOR XML PATH;
输出示例:
<Employee ID="1"><Name>Alice</Name><Position>Engineer</Position>
</Employee>
<Employee ID="2"><Name>Bob</Name><Position>Manager</Position>
</Employee>
<Employee ID="3"><Name>Charlie</Name><Position>Analyst</Position>
</Employee>
示例 2:PATH()传入层级关系
SELECT ProductModelID,Name
FROM Production.ProductModel
WHERE ProductModelID=122 or ProductModelID=119
FOR XML PATH ('ProductModel');
输出示例:
<ProductModel><ProductModelID>122</ProductModelID><Name>All-Purpose Bike Stand</Name>
</ProductModel>
<ProductModel><ProductModelID>119</ProductModelID><Name>Bike Wash</Name>
</ProductModel>
SELECT ProductModelID,Name
FROM Production.ProductModel
WHERE ProductModelID=122 OR ProductModelID=119
FOR XML PATH ('');
输出示例:
<ProductModelID>122</ProductModelID>
<Name>All-Purpose Bike Stand</Name>
<ProductModelID>119</ProductModelID>
<Name>Bike Wash</Name>
示例 3:嵌套路径
SELECT Department AS "Department",(SELECT EmployeeID AS "ID", Name AS "Name"FROM Employees E2WHERE E1.Department = E2.DepartmentFOR XML PATH('Employee'), TYPE) AS "Employees"
FROM Employees E1
GROUP BY Department
FOR XML PATH('Department');
输出示例:
<Department><Department>IT</Department><Employees><Employee><ID>1</ID><Name>Alice</Name></Employee></Employees>
</Department>
<Department><Department>HR</Department><Employees><Employee><ID>2</ID><Name>Bob</Name></Employee></Employees>
</Department>
让我们通过一个具体的例子来说明 RAW 和 AUTO 模式的区别,尤其是 AUTO 模式如何形成层次关系。
假设有两张表:Departments
和 Employees
Departments
表
DepartmentID | DepartmentName |
---|---|
1 | IT |
2 | HR |
Employees
表
EmployeeID | Name | Position | DepartmentID |
---|---|---|---|
1 | Alice | Engineer | 1 |
2 | Bob | Manager | 2 |
3 | Eve | Analyst | 1 |
1. 使用 RAW 模式
RAW 模式会将每一行数据封装为 <row>
,不形成嵌套关系:
SQL 查询
SELECT D.DepartmentName, E.EmployeeID, E.Name, E.Position
FROM Departments D
JOIN Employees E ON D.DepartmentID = E.DepartmentID
FOR XML RAW;
输出 XML
<row DepartmentName="IT" EmployeeID="1" Name="Alice" Position="Engineer" />
<row DepartmentName="HR" EmployeeID="2" Name="Bob" Position="Manager" />
<row DepartmentName="IT" EmployeeID="3" Name="Eve" Position="Analyst" />
- 每一行数据以
<row>
包裹。 - 没有层次结构:
Departments
和Employees
的信息在同一级别。
2. 使用 AUTO 模式
AUTO 模式根据表之间的关系自动生成层次结构,从左到右的表按嵌套顺序排列:
SQL 查询
SELECT D.DepartmentName, E.EmployeeID, E.Name, E.Position
FROM Departments D
JOIN Employees E ON D.DepartmentID = E.DepartmentID
FOR XML AUTO;
输出 XML
<Departments DepartmentName="IT"><Employees EmployeeID="1" Name="Alice" Position="Engineer" /><Employees EmployeeID="3" Name="Eve" Position="Analyst" />
</Departments>
<Departments DepartmentName="HR"><Employees EmployeeID="2" Name="Bob" Position="Manager" />
</Departments>
- 层次结构:
Departments
成为父节点,Employees
成为子节点。 - 嵌套关系由表的连接顺序(从左到右)决定:
Departments → Employees
。
总结 RAW 与 AUTO 的区别
特性 | RAW 模式 | AUTO 模式 |
---|---|---|
输出结构 | 每行数据一个 <row> 元素 | 自动根据表关系生成层次结构 |
节点名称 | 固定为 <row> | 节点名称根据表名自动生成 |
多表嵌套支持 | 不支持,所有数据在同一层级 | 支持,通过表连接顺序生成嵌套 |
使用场景 | 简单的平面数据输出 | 需要自动生成父子关系、层次结构的场景 |
相关文章:
SQL for XML
关系数据模型与SQL SQL for XML 模式名功能RAW返回的行作为元素,列值作为元素的属性AUTO返回表名对应节点名称的元素,每列的属性作为元素的属性输出输出,可形成简单嵌套结构EXPLICIT通过SELECT语法定义输出XML结构PATH列名或列别名作为XPAT…...
RabbitMQ 篇-深入了解延迟消息、MQ 可靠性(生产者可靠性、MQ 可靠性、消费者可靠性)
??博客主页:【_-CSDN博客】** 感谢大家点赞??收藏评论** 文章目录 ???1.0 RabbitMQ 的可靠性 ? ? ? ? 2.0 发送者的可靠性 ? ? ? ? 2.1 生产者重试机制 ? ? ? ? 2.2 生产者确认机制 ? ? ? ? 2.2.1 开启生产者确认机制 ? ? ? ? 2.2…...
Java设计模式 —— 【创建型模式】原型模式(浅拷贝、深拷贝)详解
文章目录 前言原型模式一、浅拷贝1、案例2、引用数据类型 二、深拷贝1、重写clone()方法2、序列化 总结 前言 先看一下传统的对象克隆方式: 原型类: public class Student {private String name;public Student(String name) {this.name name;}publi…...
LightRAG - 更快更便宜的GraphRAG
检索增强生成(Retrieval-Augmented Generation, RAG)已经成为提升大型语言模型(LLMs)能力的重要方法之一,通过整合外部知识,显著改善了生成内容的质量和相关性。 RAG 的局限性 传统的 RAG 系统虽然表现优…...
基于STM32的智能风扇控制系统
基于STM32的智能风扇控制系统 持续更新,欢迎关注!!! ** 基于STM32的智能风扇控制系统 ** 近几年,我国电风扇市场发展迅速,产品产出持续扩张,国家产业政策鼓励电风扇产业向高技术产品方向发展,国内企业新增投资项目投…...
Java面试问答FAQ
目录: 1、post为什么会发送两次请求?2、单核CPU支持多线程吗?3、ConcurrentHashMap 如何保证线程的安全性? 1、post为什么会发送两次请求? A:那是因为浏览器的安全策略(同源策略)决…...
PHP中类名加双冒号的作用
在 PHP 中,类名加双冒号(::) 是一种用于访问类的静态成员和常量的语法。它也可以用来调用类的静态方法和访问 PHP 的类相关关键词(如 parent、self 和 static)。以下是详细的解释和用法。 1. 用途概述 :: 被称为作用域…...
[极客大挑战 2019]PHP
访问www.zip拿到源码. 绕过这三处. 构造exp <?php class Name{private $username admin;private $password 100;}$select new Name();$resserialize($select); echo $res ?>O:4:"Name":2:{s:14:"%00Name%00username";s:5:"admin"…...
【versal】【petalinux】添加LED驱动
versal 添加LED驱动 ` 提示:本文使用外部kernel与uboot`一、LED1.1 LED功能1.2 LED节点1.3 LED操作命令1.3.1 点LED1.3.2 关闭LED二、LED驱动2.1 驱动文件2.2 设备树兼容属性三、 LED设备树配置3.1 设备树配置信息3.2 设备树配置信息讲解四、提示4.1 正确4.2 错误4.3提示:本文…...
【前端】JavaScript中的字面量概念与应用详解
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 💯前言💯字面量1. 数字字面量2. 字符串字面量3. 布尔字面量4. 空值字面量(null)5. 对象字面量6. 数组字面量7. 正则表达式字面量8. 特殊值字面量9. 函数字…...
工作学习:切换git账号
概括 最近工作用的git账号下发下来了,需要切换一下使用的账号。因为是第一次弄,不熟悉,现在记录一下。 打开设置 路径–git—git remotes,我这里选择项是Manage Remotes,点进去就可以了。 之后会出现一个输入框&am…...
python-解决一元一次方程
【题目】解决一元一次方程数学问题 【问题描述】 我们要解决一个较为复杂的一元一次方程数学问题,方程形如:ax b c,其中a、b、c为已知常数,x为未知数。 现在我们要通过编程的方式解决这个问题,即找到方程的解x。 【…...
在线音乐播放器 —— 测试报告
自动化脚本源代码:Java: 利用Java解题与实现部分功能及小项目的代码集合 - Gitee.com 目录 前言 一、项目简介 1.项目背景 2.应用技术 (1)后端开发 (2)前端开发 (3)数据库 二、项目功能…...
6.算法移植第六篇 YOLOV5/rknn生成可执行文件部署在RK3568上
接上一篇文章best-sim.rknn模型生成好后,我们要将其转换成可执行文件运行在RK3568上,这一步需要在rknpu上进行,在强调一遍!!rknpu的作用是可以直接生成在开发板上运行的程序 退出上一步的docker环境 exit1.复制best-…...
【贪心算法第七弹——674.最长连续递增序列(easy)】
目录 1.题目解析 题目来源 测试用例 2.算法原理 3.实战代码 代码分析 1.题目解析 题目来源 674.最长递增子序列——力扣 测试用例 2.算法原理 贪心思路 3.实战代码 class Solution { public:int findLengthOfLCIS(vector<int>& nums) {int n nums.size();in…...
剖析前后端 API 接口参数设计:JSON 数据结构化全攻略
在当今软件开发领域,前后端分离架构已成为主流趋势。而 API 接口作为前后端之间数据交互的桥梁,其设计的合理性对系统的可维护性和扩展性起着至关重要的作用。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式&…...
【RISC-V CPU debug 专栏 2.3 -- Run Control】
文章目录 Run ControlHart 运行控制状态位状态信号操作流程时间与实现注意事项Run Control 在 RISC-V 调试架构中,运行控制模块通过管理多个状态位来对硬件线程(harts)的执行进行调节和控制。这些状态位帮助调试器请求暂停或恢复 harts,并在 hart 复位时进行控制。以下是运…...
力扣887:鸡蛋掉落问题
题目描述: 给你 k 枚相同的鸡蛋,并可以使用一栋从第 1 层到第 n 层共有 n 层楼的建筑。 已知存在楼层 f ,满足 0 < f < n ,任何从 高于 f 的楼层落下的鸡蛋都会碎,从 f 楼层或比它低的楼层落下的鸡蛋都不会破。…...
Matlab与python数据处理对比
MATLAB 和 Python 都是数据分析和科学计算中常用的编程语言,各自有其优点和应用场景。它们在数据处理方面有许多相似之处,但也有一些关键差异。以下是 MATLAB 和 Python 在数据处理方面的对比与总结。 ### 1. **语法与语言特性** - **MATLAB**: - 以…...
【系统架构设计师】高分论文:论软件架构的生命周期
更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 摘要正文摘要 2022 年5月,本人所在的某集团公司承接了财务共享服务平台综合管理系统的项目开发,该项目主要实现财务系统主流业务的集成共享。本人担任项目组成员中的系统架构设计师一职,全面负责项目的全生命周…...
gitlab工作笔记
gitlab常用操作 gitlab常用笔记docker 安装模式pull imagerun一个gitlab container atttach入containerdocker run 之后要等几分钟安装之后的初始配置初始密码在哪里 :第一次登录创建和检查第一个工程能否正常clone gitlab常用笔记 装过几次gitlab,但每…...
shell完结
声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…...
优维HAO案例:全球TOP15汽车零件供应商「IT运维自动化」创新工程
撰文:鹿小U / 制图:脾气超好 又是一家很厉害的客户。 YADT是全(hu)球(zhēn)领(ji)先(sh)的汽车座椅供应商,拥有从汽车座椅零部件到整椅的完整生产制造能力,为中国几乎所有的汽车制造商提供汽车整椅产品和服务。 YADT在国内拥…...
语义版本控制
注意: 本文内容于 2024-11-27 22:25:05 创建,可能不会在此平台上进行更新。如果您希望查看最新版本或更多相关内容,请访问原文地址:语义版本控制。感谢您的关注与支持! 由于自己平时喜欢写点小玩意,自然而…...
C++设计模式行为模式———策略模式
文章目录 一、引言二、策略模式三、总结 一、引言 策略模式是一种行为设计模式, 它能让你定义一系列算法, 并将每种算法分别放入独立的类中, 以使算法的对象能够相互替换。与模板方法模式类似,都是以扩展的方式来支持未来的变化。…...
Pgsql:json字段查询与更新
1.查询json字段的值 SELECT attribute_data->>设施类别 mycol, * FROM gis_coord_data WHERE attribute_data->>设施类别阀门井 查询结果如下: 2.更新json字段中的某个属性值 UPDATE gis_coord_data SET attribute_data(attribute_data::jsonb ||{&quo…...
鸿蒙面试 --- 性能优化
性能优化可以从三个方面入手 感知流畅、渲染性能、运行性能 感知流畅 在应用开发中,动画可以为用户界面增添生动、流畅的交互效果,提升用户对应用的好感度。然而,滥用动画也会导致应用性能下降,消耗过多的系统资源,…...
【逐行注释】自适应观测协方差R的AUKF(自适应无迹卡尔曼滤波,MATLAB语言编写),附下载链接
文章目录 自适应R的UKF逐行注释的说明运行结果部分代码各模块解释 自适应R的UKF 自适应无迹卡尔曼滤波(Adaptive Unscented Kalman Filter,AUKF)是一种用于状态估计的滤波算法。它是基于无迹卡尔曼滤波(Unscented Kalman Filter&…...
mac下安装Ollama + Open WebUI + Llama3.1
本文介绍mac下安装Ollama Open WebUI Llama3.1 8b具体步骤。 目录 推荐配置Ollama Open WebUI Llama3.1简介安装Ollama安装Open WebUI 推荐配置 m1以上芯片,16g内存,20g以上硬盘空间 Ollama Open WebUI Llama3.1简介 Ollama: 下载,管理…...
Python Tornado框架教程:高性能Web框架的全面解析
Python Tornado框架教程:高性能Web框架的全面解析 引言 在现代Web开发中,选择合适的框架至关重要。Python的Tornado框架因其高性能和非阻塞I/O特性而备受青睐。它特别适合处理大量并发连接的应用,比如聊天应用、实时数据处理和WebSocket服务…...
QT-installEventFilter
installEventFilter 是 Qt 框架中的一个方法,用于在对象之间建立事件过滤机制。具体来说,它允许一个对象(称为事件过滤器)监视另一个对象(称为被监视对象)的事件,并在这些事件被处理之前对其进行…...
ZYNQ详解
ZYNQ是Xilinx公司推出的一系列SoC(System-on-Chip,系统级芯片)产品家族,它将传统的FPGA(可编程逻辑器件)与嵌入式处理器相结合,形成了一种集成了硬件和软件处理能力的单一芯片解决方案。以下是对…...
代码随想录打卡DAY21
算法记录第21天 [二叉树] 1.LeetCode 538. 把二叉搜索树转换为累加树 题目描述: 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原…...
LeetCode【代码随想录】刷题(数组篇)
704.二分查找 力扣题目链接 题目:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 思路:简单的二…...
Python知识第十二天分享
假设有一个文件 num.txt,里面存储了如下的一些数字,内容如下: 10 18 30 11 12 15 编写一个 python 程序,读取文件中的内容,存储成 python 中的列表形式: sum 0 with open(./num.txt, r) as nu_f:list1 …...
[SWPUCTF 2021 新生赛]easy_md5
借鉴博客 [SWPUCTF 2021 新生赛]easy_md5_青少年ctf easymd5-CSDN博客 我们直接看见源码 <?php highlight_file(__FILE__);include flag2.php;if (isset($_GET[name]) && isset($_POST[password])){$name $_GET[name];$password $_POST[password];if ($name …...
C# 开发应用篇——C# 基于WPF实现数据记录导出excel详解
目录 引言 一、基于 EPPlus 库实现WPF导出EXCEL功能 项目准备 创建 WPF 界面 后端代码 EPPlus LicenseContext 属性设置 关键点说明 二、基于 ClosedXML 库实现WPF导出EXCEL功能 安装 ClosedXML 使用 ClosedXML 创建和操作 Excel 文件 读取 Excel 文件 常…...
MongoDB相关问题
视频教程 【GeekHour】20分钟掌握MongoDB Complete MongoDB Tutorial by Net Ninja MongoDB开机后调用缓慢的原因及解决方法 问题分析: MongoDB开机后调用缓慢,通常是由于以下原因导致: 索引重建: MongoDB在启动时会重建索引…...
从入门到精通数据结构----四大排序(上)
目录 首言: 1. 插入排序 1.1 直接插入排序 1.2 希尔排序 2. 选择排序 2.1 直接选择排序 2.2 堆排序 3. 交换排序 3.1 冒泡排序 3.2 快排 结尾: 首言: 本篇文章主要介绍常见的四大排序:交换排序、选择排序、插入排序、归并排…...
数据结构-堆的实现和应用
目录 1.堆的概念 2.堆的构建 3.堆的实现 4.堆的功能实现 4.1堆的初始化 4.2堆的销毁 4.3堆的插入 4.3.1向上调整 4.4堆的删除 4.4.1向下调整法 编辑4.5取堆顶 5. 向上调整法和向下调整法比较 6.堆的应用 6.1TOP-K问题 6.2TOP-K思路 6.2.1用前n个数据来建堆 6.…...
Spring MVC
1. 用户发起请求 用户行为:用户在浏览器中输入URL或点击链接,向Web服务器(如Tomcat)发起一个HTTP请求。请求传输:请求被发送到Web容器,Web容器根据配置将请求转发给DispatcherServlet。 2. 前端控制器&am…...
linux ubuntu的脚本知
目录 一、变量的引用 二、判断指定的文件是否存在 三、判断目录是否存在 四、判断最近一次命令执行是否成功 五、一些比较符号 六、"文件"的读取和写入 七、echo打印输出 八、ubuntu切换到root用户 九、后台进程的控制 N、其它可以参考的网址 脚本功能强大…...
Spring Boot 动态数据源切换
背景 随着互联网应用的快速发展,多数据源的需求日益增多。Spring Boot 以其简洁的配置和强大的功能,成为实现动态数据源切换的理想选择。本文将通过具体的配置和代码示例,详细介绍如何在 Spring Boot 应用中实现动态数据源切换,帮…...
Design Linear Filters in the Frequency Domain (MATLAB帮助文档)
Design Linear Filters in the Frequency Domain 这个帮助文档写得很好,简单明了,一句废话没有。 This topic describes functions that perform filtering in the frequency domain. 2-D Finite Impulse Response (FIR) Filters The Image Processi…...
Java知识及热点面试题总结(二)
1、什么是死锁(deadlock)? 两个线程或两个以上线程都在等待对方执行完毕才能继续往下执行的时候就发生了死锁。结果就是这些线程都陷入了无限的等待中。 如何避免线程死锁? 只要破坏产生死锁的四个条件中的其中一个就可以了。 破坏互斥条件:这个条件我们没有办法…...
开源加密库mbedtls及其Windows编译库
目录 1 项目简介 2 功能特性 3 性能优势 4 平台兼容性 5 应用场景 6 特点 7 Windows编译 8 编译静态库及其测试示例下载 1 项目简介 Mbed TLS是一个由ARM Maintained的开源项目,它提供了一个轻量级的加密库,适用于嵌入式系统和物联网设备。这个项…...
架构01-演进中的架构
零、文章目录 架构01-演进中的架构 1、原始分布式时代:Unix设计哲学下的服务探索 (1)背景 时间:20世纪70年代末到80年代初计算机硬件:16位寻址能力、不足5MHz时钟频率的处理器、128KB左右的内存转型:从…...
npm-运行项目报错:A complete log of this run can be found .......npm-cache_logs\
1.问题 没有找到对应的某种依赖,node_modules出现问题。 2.解决 (1)查看对应依赖是否引入或者是由于合并分支错误 引入js或依赖不存在。谨慎删除依赖包 (2)查找对应引入依赖进行安装最后解决方法-删除依赖包清除缓存 npm cache clean --force (2)重新向同事引入…...
C++中的函数对象
C 中函数对象的定义和特点 定义:函数对象(Function Object)也叫仿函数(Functor),是一个类,这个类重载了函数调用运算符()。当创建这个类的对象后,可以像使用函数一样使用这个对象&am…...
godot游戏引擎_瓦片集和瓦片地图介绍
在 Godot 中,TileSet 和 TileMap 是用于处理瓦片地图的两个关键概念,它们的作用和用途有明显的区别。以下是两者的详细对比: 1. TileSet(瓦片集) TileSet 是资源,定义瓦片的内容和属性。 特点:…...