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

【图书管理系统】深入解析基于 MyBatis 数据持久化操作:全栈开发图书管理系统:查询图书属性接口(注解实现)、修改图书属性接口(XML 实现)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


查询图书属性接口


约定前后端交互接口


约定前后端交互接口,进入修改页面,需要显示当前图书的信息;

请求  
/book/queryBookById?bookId=25  参数  
无  响应  
{  "id": 25,  "bookName": "图书21",  "author": "作者2",  "count": 999,  "price": 222.00,  "publish": "出版社1",  "status": 2,  "statusCN": null,  "createTime": "2023-09-04T04:01:27.000+00:00",  "updateTime": "2023-09-05T03:37:03.000+00:00"  
}

根据图书ID,获取当前图书的信息。


实现服务器代码


控制层 BookController


image-20250410184907710


业务层 BookService


image-20250410191653924


数据层 BookInfoMapper


根据图书ID,查询图书信息。

@Select("select id, book_name, author, count, price, publish, `status`, 
create_time, update_time " +
"from book_info where id=#{bookId} and status<>0")
BookInfo queryBookById(Integer bookId);

image-20250410185255703


接口测试


重新运行程序,打开页面127.0.0.1:9090/book/queryBookById?bookId=5

image-20250410195011815


修改图书属性接口


约定前后端交互接口


点击修改按钮,修改图书信息。

请求  
/book/updateBook  
Content-Type: application/x-www-form-urlencoded; charset=UTF-8  参数  
id=1&bookName=图书1&author=作者1&count=23&price=36&publish=出版社1&status=1  响应  
""  // 失败信息, 成功时返回空字符串

我们约定,浏览器给服务器发送一个 /book/updateBook 这样的 HTTP 请求,form表单的形式来提交数据;

服务器返回处理结果,返回""表示添加图书成功,否则,返回失败信息。


实现服务器代码


控制层 BookController


image-20250410190019780


image-20250410190115282


业务层 BookService


image-20250410190220780


数据层 BookInfoMapper


更新逻辑相对较为复杂,因为一本书不是每个属性都需要进行修改的;

所以 bookInfo 对象的哪些属性传递了值,我们就更新哪些值,需要使用动态SQL

对于初学者而言,注解的方式拼接动态SQL不太友好,煮啵采用xml的方式来实现。

因为注解和 XML 可以同时在一个 interface 中共存,所以煮啵就不创建新接口了;

image-20250410191823774


添加依赖和配置 XML 路径


配置 xml 路径:

mybatis:mapper-locations: classpath:mapper/**Mapper.xml

最终整体的 yml 配置文件为:

image-20250410192815280


xml 实现:


创建BookInfoMapper.xml文件,并初始化

image-20250410193242524


image-20250410193451978


image-20250410193645225


image-20250410194420971


接口测试


重新运行程序:

image-20250410195937320


结果层层筛查和尝试,煮啵才锁定问题:

image-20250410203205409


查看以前的博客,煮啵发现:spring 和 mybatis 是同级别的层次,煮啵把 mybatis 设置成了 spring 的小弟

image-20250410203129976


修改好代码之后,重新提供 Postman 构造请求,终于成功返回响应:

image-20250410202945566


提前开香槟,我们这一路走来不容易,多少次流着泪说不分离~~~(bushi)

验证数据库表信息是否被修改:

image-20250410203527722


image-20250410203906040


查找、修改图书客户端代码实现


查找图书


我们希望点击修改按钮时:

image-20250410204058159


跳转的输入框中有原来的值:

image-20250410204211566


修改好数据后,点击确认按钮,会调用后端:

image-20250410204514420


接下来,我们来写前端代码:

我们希望,点击修改页面后,马上调用后端,补全输入框中的信息:

image-20250411094913737


点击修改按钮之后,我们看到 URL 中 bookId 的赋值是未被定义的参数:

image-20250411095056902


按修改按钮时,会跳转页面,但是跳转的 URL 参数 bookId 赋值是 book.bookId ,与后端属性名 id 不同,自然无法识别 bookId:

image-20250411095310336


image-20250411095836316


image-20250411095544257


修复好 book_list 跳转 book_update 的 URL 参数后,我们继续补齐 book_update 的 ajax 请求:

image-20250411100206703

location.search 是 JavaScript 中 window.location 对象的一个属性,它返回 URL 中从问号 ? 开始的部分(包括问号),也就是查询字符串部分。

例如:

  • 如果当前 URL 是 http://example.com/book_update.html?bookId=123
  • 那么 location.search 的值就是 "?bookId=123"

在你的代码中:

$.ajax({type: "get",url: "/book.queryBookId" + location.search,
});

这意味着:

  1. 当用户从图书列表点击"修改"按钮时,会跳转到 book_update.html?bookId=123(假设图书ID是123)
  2. 在修改页面,location.search 就是 "?bookId=123"
  3. 这个查询字符串会直接附加到请求URL后面,形成完整的请求:/book.queryBookId?bookId=123

为什么不用传data给后端了?


GET请求中,数据通常是通过URL的查询字符串传递的(就像这里做的),而不是像POST请求那样放在请求体中。这是因为:

  1. GET请求的设计初衷就是用于获取数据,其参数直接体现在URL中
  2. 查询字符串 ?bookId=123 本身就是传递给后端的数据
  3. 这种方式更符合RESTful风格,URL本身就标识了要操作的资源

所以在这种情况下,不需要额外使用data参数来传递数据,因为数据已经包含在URL的查询字符串中了。


我们通过 URL 中的信息,想后端发送 get 请求,接下来就通过 success 接收后端的返回结果,并且通过 id 选择器,对前端输入框对应的属性赋值,赋的值是后端对应的属性:

image-20250411101252726


image-20250411102157181


这里需要注意:图书状态的 value = “1” ,“2” ,是与我们后端数据库的定义有关的,要和后端的枚举对应上:

image-20250411102018303


修改图书


我们观察,在列表页时,我们已经补充了[修改]的链接:

image-20250411121906382


image-20250411102924323


补全修改图书的方法:

通过 id 选择器选中 form 表单,使用 serialize() 对表单进行序列化,就拿到了 fom 表单的值,这样就不需要对 bookName,bookAuthor 这些属性分别赋值

image-20250411103335414


对后端返回的数据进行处理:

image-20250411103656468


接口测试


ctrl+s 保存代码,重新运行程序,结果发现输入框并没有值:

image-20250411111310966


通过 deepseek 不断缩小问题范围,最终锁定 bug:

image-20250411111431688


修改 URL ,保存代码,重新运行程序:

image-20250411111943731


此时点击修改按钮,跳转页面的输入框中有值了:

image-20250411112032814


我们试着修改值:

image-20250411112209408


修改数据,点击确定后,页面跳转到图书列表的第一页:

image-20250411112302631


找到原来的那本书,发现又出 bug 了,对应的属性没有更新:

image-20250411112410258


遇到这种问题,我们要先冷静下来,因为后端打印有日志,方便排查问题,所以我们先看后端,再看前端;

找到对应 update 的日志:

image-20250411112719412

我们发现 SQL 对应的 id 赋值为 null,很幸运的找到了出现问题的原因!


我们再仔细看这条日志,发现前端传过来的 id 值为 null,就说明问题出在前端:

image-20250411112901601


image-20250411113354606

我们修改图书信息,是根据图书ID来修改的,所以需要前端传递的参数中,包含图书ID。

有两种方式:

  1. 获取url中参数的值(比较复杂,需要拆分url)
  2. 在form表单中,再增加一个隐藏输入框,存储图书ID,随 $(“#updateBook”).serialize() 一起提交到后端。

我们采用第二种方式:

在form表单中,添加隐藏输入框。


  • hidden类型的<input>元素。
  • 隐藏表单,用户不可见、不可改的数据,在用户提交表单时,这些数据会一并发送出。
  • 使用场景:正被请求或编辑的内容的ID。这些隐藏的input元素在渲染完成的页面中完全不可见,且没有方法可以使它重新变为可见。

image-20250411113208570


image-20250411113557224


保存代码,重新运行程序,执行上述修改步骤:

image-20250411113724477


image-20250411113749491


在这里插入图片描述

在这里插入图片描述

相关文章:

【图书管理系统】深入解析基于 MyBatis 数据持久化操作:全栈开发图书管理系统:查询图书属性接口(注解实现)、修改图书属性接口(XML 实现)

查询图书属性接口 约定前后端交互接口 约定前后端交互接口&#xff0c;进入修改页面&#xff0c;需要显示当前图书的信息&#xff1b; 请求 /book/queryBookById?bookId25 参数 无 响应 { "id": 25, "bookName": "图书21", "…...

消息队列(IPC技术)

目录 一、Linux 中主要的进程间通信方式如下&#xff1a; 二、消息队列函数 &#xff08;1&#xff09;msgget函数 功能概述 函数原型 参数解释 返回值 示例 结果 问题 (2) msgsnd函数 功能概述 函数原型 参数说明 返回值 示例 结果 &#xff08;3&#xff0…...

分支语句和循环语句

什么是语句&#xff1f; C语言中由一个分号;隔开的就是一条语句。 比如&#xff1a; printf("haha");12;分支语句 if语句 if语句的语法结构: if(表达式)语句;if(表达式)语句1; else语句2;//多分支 if(表达式1)语句1; else if(表达式2)语句2; else语句3;在C语言…...

MySQL基础 [八] - 事务

目录 前言 什么是事务 事务的版本支持 事务的提交方式 事务的相关演示 并行事务引发的问题 脏读 dirty read 不可重复读 non-repeatable read 幻读 phantom read 事务的隔离级别 查看与设置隔离级别 读未提交&#xff08;Read Uncommitted&#xff09; 读提交&…...

深入理解Java反射

反射(Reflection)是Java语言的一个强大特性&#xff0c;它允许程序在运行时动态地获取类的信息并操作类或对象的属性、方法和构造器。就是在获取运行时的java字节码文件&#xff0c;通过各种方法去创建对象&#xff0c;反射是Java被视为动态语言的关键特性之一。 反射其实就是…...

【UE】渐变框材质

效果 步骤 新建一个材质&#xff0c;这里命名为“M_GlowingBorder”&#xff0c;打开“M_GlowingBorder”后&#xff0c;设置材质域为“用户界面”&#xff0c;混合模式为“半透明” 添加如下节点&#xff1a; 代码&#xff1a; Begin Object Class/Script/UnrealEd.Materia…...

2025年第十八届“认证杯”数学中国数学建模网络挑战赛【ABCD题】思路分析

首先&#xff0c;需要理解用户的需求。问题1需要数学模型来确定小行星的相对距离&#xff0c;而问题2需要预测短期轨道并计算特定时间的观测角度。这两个问题都需要结合天文学和数学建模的知识&#xff0c;涉及到轨道力学和几何定位的方法。 接下来&#xff0c;查阅提供的搜索…...

JavaScript 性能优化:突破瓶颈的实战指南

一、引言​ 在现代 Web 应用和 Node.js 服务端开发中&#xff0c;JavaScript 已成为核心编程语言。随着应用复杂度提升&#xff0c;性能问题愈发凸显。高延迟、卡顿甚至崩溃等现象&#xff0c;不仅影响用户体验&#xff0c;还可能导致业务流失。深入理解 JavaScript 性能瓶颈并…...

HarmonyOS:组件布局保存至相册

一&#xff0c;需求背景 有这样一个需求&#xff0c;将页面上的某个自定义组件以图片的形式保存至相册。 二&#xff0c;需求拆解 根据需求分析&#xff0c;可将需求拆解成两步&#xff1a; 1&#xff0c;将组件转换成图片资源&#xff1b; 2&#xff0c;将图片保存到相册…...

【langchain库名解析】

目录 一、from langchain_openai import ChatOpenAI 1. 核心功能 2. 典型使用场景 场景 1&#xff1a;直接生成对话回复 场景 3&#xff1a;流式输出&#xff08;逐词显示结果&#xff09; 3. 与其他 LangChain 组件的协同 结合提示模板&#xff08;PromptTemplate&#…...

629SJBH图书管理系统设计与实现

一、 绪论 &#xff08;一&#xff09;课题的提出、现状及研究意义 图书馆是文献情报中心&#xff0c;是为教学和科研服务的学术性机构。它履行搜集、加工、存贮和传播知识信息的职能&#xff0c;与各系资料室互为补充&#xff0c;共同承担为教学和科研提供文献情报资料保障的…...

2025 年“认证杯”数学中国数学建模网络挑战赛 A题 小行星轨迹预测

近地小行星&#xff08; Near Earth Asteroids, NEAs &#xff09;是轨道相对接近地球的小行 星&#xff0c;它的正式定义为椭圆轨道的近日距不大于 1.3 天文单位&#xff08; AU &#xff09;的小行星。 其中轨道与地球轨道最近距离小于 0.05A 且直径大于 140 米的小行星被…...

PhotoShop学习09

1.弯曲钢笔工具 PhotoShop提供了弯曲钢笔工具可以直观地创建路径&#xff0c;只需要对分段推拉就能够进行修改。弯曲港币工具位于工具面板中的钢笔工具里&#xff0c;它的快捷键为P。 在使用前&#xff0c;可以把填充和描边选为空颜色&#xff0c;并打开路径选项&#xff0c;勾…...

远程管理命令:关机和重启

关机/重启 序号命令对应英文作用01shutdown 选项 时间shutdown关机 / 重新启动 一、shutdown shutdown 命令可以安全关闭 或者 重新启动系统。 选项含义-r重新启动 提示&#xff1a; 不指定选项和参数&#xff0c;默认表示 1 分钟之后 关闭电脑远程维护服务器时&#xff0…...

用Perl和HTTP::Tiny库的爬虫

HTTP::Tiny是Perl的一个轻量级HTTP客户端&#xff0c;适合简单的请求&#xff0c;但不像LWP那样功能全面&#xff0c;不过对于基本需求应该足够了。 首先&#xff0c;我需要熟悉HTTP::Tiny的基本用法。比如如何发起GET请求&#xff0c;设置user-agent&#xff0c;处理响应。用…...

MPP 架构解析:原理、核心优势与对比指南

一、引言&#xff1a;大数据时代的数据处理挑战 全球数据量正以指数级增长。据 Statista 统计&#xff0c;2010 年全球数据量仅 2ZB&#xff0c;2025 年预计达 175ZB。企业面临的核心挑战已从“如何存储数据”转向“如何快速分析数据”。传统架构在处理海量数据时暴露明显瓶颈…...

2025.04.10-拼多多春招笔试第三题

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. 数字重排最大化问题 问题描述 LYA是一位专业的数字设计师。她手中有两个数字序列 s 1 s_1...

前端-vue2核心

官网网址Vue2 安装 — Vue.js 搭建环境 第一种方式&#xff08;刚开是接触Vue&#xff09; 我们看官网&#xff0c;可以直接在script引入vue版本。这里有两个版本&#xff0c;开发版和生产版本。我们两个都下载。 然后创建一个项目&#xff0c;将下载的生产版本和开发版本粘…...

基于springboot的“协同过滤算法的高考择校推荐系统”的设计与实现(源码+数据库+文档+PPT)

基于springboot的“协同过滤算法的高考择校推荐系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;springboot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 局部E-R图 系统…...

制作前的关键筹备:考试考核系统之核心要点

明确系统使用目的​ 制作考试考核系统前&#xff0c;企业需明确系统使用目的&#xff0c;这是开发基石&#xff0c;不同目的决定系统功能特性。用于员工培训考核时&#xff0c;系统要与培训内容结合&#xff0c;能生成相应考题&#xff0c;检验员工知识掌握程度&#xff0c;具备…...

【动手学深度学习】现代卷积神经网络:ALexNet

【动手学深度学习】现代卷积神经网络&#xff1a;ALexNet 1&#xff0c;ALexNet简介2&#xff0c;AlexNet和LeNet的对比3&#xff0c; AlexNet模型详细设计4&#xff0c;AlexNet采用ReLU激活函数4.1&#xff0c;ReLU激活函数4.2&#xff0c;sigmoid激活函数4.3&#xff0c;为什…...

Linux自启动脚本 systemctl

1.编写好脚本 #!/bin/bash /home/china/Linux/code/a.out2. 创建 Systemd 服务文件 sudo gedit /etc/systemd/system/my_script.service3.编写服务配置 将以下内容写入文件&#xff08;根据需求修改字段&#xff09;&#xff1a; [Unit] DescriptionMy Custom Shell Script…...

2024年KBS SCI1区TOP:信息增益比子特征分组赋能粒子群算法ISPSO,深度解析+性能实测

目录 1.摘要2.信息度量3.改进策略4.结果展示5.参考文献6.代码获取 1.摘要 特征选择是机器学习中的关键预处理步骤&#xff0c;广泛应用于实际问题。尽管粒子群算法&#xff08;PSO&#xff09;因其强大的全局搜索能力被广泛用于特征选择&#xff0c;但要开发一种高效的PSO方法…...

餐饮厨房开源监控安全系统的智能革命

面对日益严格的合规要求和消费者对卫生的信任危机&#xff0c;传统人工监督已力不从心&#xff1a;卫生死角难发现、违规操作难追溯、安全隐患防不胜防。如何让后厨更透明、更安全、更可信&#xff1f;餐饮厨房视频安全系统横空出世&#xff01;这套系统融合实时监控与AI技术&a…...

Ansys Electronics 变压器 ACT

你好&#xff0c; 在本博客中&#xff0c;我将讨论如何使用 Ansys 电子变压器 ACT 自动快速地设计电力电子电感器或变压器。我将逐步介绍设计和创建电力电子变压器示例的步骤&#xff0c;该变压器为同心组件&#xff0c;双绕组&#xff0c;采用正弦电压激励&#xff0c;并应用…...

Redis与Lua原子操作深度解析及案例分析

一、Redis原子操作概述 Redis作为高性能的键值存储系统&#xff0c;其原子性操作是保证数据一致性的核心机制。在Redis中&#xff0c;原子性指的是一个操作要么完全执行&#xff0c;要么完全不执行&#xff0c;不会出现部分执行的情况。 Redis原子性的实现原理 单线程模型&a…...

Shell 脚本开发从入门到实战

第1章&#xff1a;什么是 Shell 与 Shell 脚本&#xff1f; 一、Shell 是什么&#xff1f; Shell 是一个命令解释器&#xff0c;是你在 Linux 里敲命令的地方。你平时用的命令如 cd、ls、echo&#xff0c;其实都由 Shell 来解析执行。最常见的 Shell 是 Bash&#xff0c;绝大…...

宇视设备视频平台EasyCVR打造智慧酒店安防体系,筑牢安全防线

一、需求背景 酒店作为人员流动频繁的场所&#xff0c;对安全保障与隐私保护有着极高的要求。为切实维护酒店内部公共区域的安全秩序&#xff0c;24小时不间断视频监控成为必要举措。通常情况下&#xff0c;酒店需在本地部署视频监控系统以供查看&#xff0c;部分连锁酒店还希…...

深度解读分销小程序商城源码系统:从搭建到运营的关键指南​​​​

在移动互联网浪潮的席卷下&#xff0c;电商领域持续变革与创新。分销小程序商城凭借其独特优势&#xff0c;如依托社交平台流量、便捷的购物体验、高效的分销推广模式等&#xff0c;成为众多企业和创业者开展线上业务的热门选择。深入了解分销小程序商城源码系统&#xff0c;从…...

BeeWorks:打造安全可控的企业内网即时通讯平台

在数字化办公时代&#xff0c;企业对即时通讯工具的需求日益增长&#xff0c;尤其是对数据安全和隐私保护有严格要求的行业&#xff0c;如金融、政府、医疗等。BeeWorks 作为一款专注于内网部署的即时通讯软件&#xff0c;凭借其卓越的安全性、稳定性、丰富的功能以及全面的信创…...

微信小程序开发:废品回收小程序-功能清单

用户端&#xff1a;便捷体验&#xff0c;触手可及 废品百科与估价指南&#xff1a;平台以直观的方式展示各类废品的分类标准与实时市场价格&#xff0c;让用户轻松掌握废品价值&#xff0c;决策更从容。 一键预约&#xff0c;轻松回收&#xff1a;用户只需轻触屏幕&#xff0c…...

【Grok 大模型深度解析】第一期:技术溯源与核心突破

一、Grok的技术基因:从Transformer到混合架构的演进 1.1 Transformer架构的局限性 2017年Google提出的Transformer架构彻底改变了自然语言处理领域,其自注意力机制(Self-Attention)在长序列建模上表现优异。然而,随着模型规模的增大,传统Transformer暴露出以下问题: 计…...

性能比拼: Redis vs Memcached

本内容是对知名性能评测博主 Anton Putra Redis vs Memcached Performance Benchmark 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 在本视频中&#xff0c;我们将对比 Redis 和 Memcached。我会介绍一些功能上的不同&#xff0c;但主要关注 性能。 首先&#xf…...

Mujoco xml actuator

actuator general&#xff08;通用执行器&#xff09;motor&#xff08;电机执行器&#xff09;position&#xff08;位置伺服&#xff09;velocity&#xff08;速度伺服&#xff09;intvelocity&#xff08;积分速度伺服&#xff09;damper&#xff08;主动阻尼器&#xff09;…...

Mybatis Plus分页查询返回total为0问题

概述 最近开发公司新项目&#xff0c;使用 Mybatis Plus 分页&#xff0c;发现总数和总页数为0&#xff0c;在此记录问题和解决方案。 添加 MybatisPlusConfig /*** author: lanys* version: 1.0* 创建时间&#xff1a;2025年4月9日 14:24:40* Description: MybatisPlus分页…...

多卡分布式训练:torchrun --nproc_per_node=5

多卡分布式训练:torchrun --nproc_per_node=5 1. torchrun 实现规则 torchrun 是 PyTorch 提供的用于启动分布式训练作业的实用工具,它基于 torch.distributed 包,核心目标是简化多进程分布式训练的启动和管理。以下是其主要实现规则: 进程启动 多进程创建:torchrun 会…...

网络层-IP地址计算

例1&#xff1a;IP地址二进制与十进制互转 题目&#xff1a; 将二进制IP 11000000.10101000.00000001.00001010 转换为点分十进制。将IP地址 172.16.254.1 转换为二进制格式。 答案与解析&#xff1a; 转换步骤&#xff1a; 每个8位二进制转为十进制&#xff1a; 11000000 →…...

BeagleBone Black笔记

目录 参考资料开机led控制GPIO输入输出插网线联网安装gcc编译工具镜像备份验证备份完整性将内存卡插入目标BBBboot启动开关 参考资料 链接: BeagleBone Black使用&#xff08;一&#xff09;&#xff1a;狗板简介 链接: 使用Beaglebone Black的IO口 开机 直接用usb连接到电脑…...

【25软考网工笔记】第一章 计算机网络概述

目录 一、计算机网络发展与分类 1. 计算机网络形成和发展 1&#xff09;ICT 2&#xff09;计算机网络的发展 3&#xff09;我国互联网发展 2. 计算机网络分类 1&#xff09;通信子网和资源子网 2&#xff09;PAN、LAN、MAN、WAN 3&#xff09;其他分类方式 3. 计算机…...

Soybean Admin 配置vite兼容低版本浏览器、安卓电视浏览器(飞视浏览器)

环境 window10 pnpm 8.15.4 node 8.15.4 vite 5.1.4 soybean admin: 1.0.0 native-ui: 2.38.0 小米电视 MIUI TV版本&#xff1a;MiTV OS 2.7.1886(稳定版) 飞视浏览器&#xff1a;https://www.fenxm.com/1220.html在小米电视安装飞视浏览器可以去小红书查安装教程&#xff1a…...

MicroPython 开发ESP32应用教程 之 I2S、INMP441音频录制、MAX98357A音频播放、SD卡读写

本课程我们讲解Micropython for ESP32 的i2s及其应用&#xff0c;比如INMP441音频录制、MAX98357A音频播放等&#xff0c;还有SD卡的读写。 一、硬件准备 1、支持micropython的ESP32S3开发板 2、INMP441数字全向麦克风模块 3、MAX98357A音频播放模块 4、SD卡模块 5、面包板及…...

从零到一:基于DeepSeek-R1的智能贪吃蛇开发实战

《基于DeepSeek-R1的AI驱动高性能贪吃蛇游戏开发全流程解析》 一、技术选型与环境搭建 开发工具链 • 编辑器:VSCode/Sublime(支持代码生成插件) • 运行环境:Node.js v16+(用于API调用及后端服务) • 图形库:HTML5 Canvas(网页端)或OLED驱动(单片机场景) • AI引擎…...

数据结构与算法-动态规划-区间dp,状态机dp,树形dp

3-区间 DP 介绍 通常用 (dp[i][j]) 表示区间 ([i, j]) 上的某种最优值&#xff0c;比如 (dp[i][j]) 可以表示从下标 (i) 到 (j) 的元素进行某种操作所得到的最大收益、最小花费等。 状态转移方程&#xff1a;这是区间 DP 的关键。它描述了如何从较小的区间的最优解得到较大区…...

文件内容课堂总结

Spark-Core编程 Key-Value类型&#xff1a; partitionBy函数根据指定Partitioner重新进行分区&#xff0c;默认使用HashPartitioner groupByKey函数根据key对value进行分组&#xff0c;有三种函数签名 reduceByKey函数将数据按相同Key对Value进行聚合&#xff0c;与groupByKey相…...

【树莓派Pico FreeRTOS】-任务通知

任务通知 文章目录 任务通知1、硬件准备2、软件准备3、FreeRTOS的任务通知介绍4、任务通知数据传输实例RP2040 由 Raspberry Pi 设计,具有双核 Arm Cortex-M0+ 处理器和 264KB 内部 RAM,并支持高达 16MB 的片外闪存。 广泛的灵活 I/O 选项包括 I2C、SPI 和独特的可编程 I/O (…...

c++11新内容补充

1.列表初始化 1.1传统{ }初始化 c98的{ }初始化主要是用于数组&#xff0c;以及结构体 1.2c11{ }初始化 1.让内置类型和自定义类型都可以用{ }实现多个数据初始化&#xff0c;而自定义类型的实现原理是类型转换&#xff08;没优化的版本是先构造临时对象&#xff0c;然后拷贝构…...

动态规划基础

动态规划 动态规划概论楼梯最短路最长上升子序列&#xff08;LIS)最长公共子序列&#xff08;LCS)最长回文子串 概率动态规划区间动态规划石子合并括号序列石子合并&#xff08;环形&#xff09; 树形动态规划统计人数没有上司的舞会 背包01背包完全背包多重背包分组背包 动态规…...

导入 Excel 批量替换文件名称及扩展名

重命名的需求是多种多样的&#xff0c;我们一个方法或一个工具很难说完全满足 100% 的文件重命名的需求。如果我们的文件重命名的需求非常的复杂的时候&#xff0c;我们能否有一个万全的方法来帮我们实现呢&#xff1f;那今天就给大家介绍一下导入 excel 的方式批量修改文件名称…...

降低AIGC检测率的AI润色提示词模板

以下是针对降低AIGC检测率的 AI润色提示词模板&#xff0c;涵盖语言风格优化、逻辑重构、学术规范强化等维度&#xff0c;结合反检测策略设计&#xff0c;可直接用于DeepSeek等工具&#xff1a; 一、标题与摘要优化 1. 标题去AI化 提示词&#xff1a; 请将以下标题改写成更学…...

系统思考—提升解决动态性复杂问题能力

感谢合作伙伴的信任推荐&#xff01; 客户今年的人才发展重点之一&#xff0c;是提升管理者应对动态性、复杂性问题的能力。 在深入交流后&#xff0c;系统思考作为关键能力模块&#xff0c;最终被纳入轮训项目——这不仅是一次培训合作&#xff0c;更是一场共同认知的跃迁&am…...