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

MyBatis plus详解

核心功能

  • 代码生成器
    • 它能够依据数据库表结构,自动生成涵盖实体类、Mapper 接口、Mapper XML 文件、Service 接口与实现类等在内的基础代码。开发人员只需简单配置数据库连接信息、表名以及生成代码的相关参数,即可快速生成符合项目规范的基础代码,避免了大量重复且机械的代码编写工作,极大地提高了开发效率。
    • 代码生成器还支持自定义模板,开发人员可以根据实际需求对生成的代码模板进行修改,以满足个性化的开发需求,例如在生成的实体类中自动添加特定的注解或方法。
  • 通用 Mapper
    • 提供了一系列通用的 CRUD 方法,通过继承BaseMapper接口,实体类可以直接使用这些方法来操作数据库。例如insert方法用于插入一条记录,selectById方法根据主键查询一条记录,updateById方法根据主键更新一条记录,deleteById方法根据主键删除一条记录等。这些通用方法基本涵盖了日常开发中对数据库的常见操作,减少了开发人员编写 SQL 语句的工作量。
    • 还支持更复杂的操作,如批量插入、批量删除、根据条件查询列表等。通过简单的方法调用,就可以实现对数据库的复杂操作,无需编写大量的 SQL 代码。
  • 条件构造器
    • 允许以链式调用的方式灵活构造查询条件。开发人员可以使用QueryWrapperLambdaQueryWrapper来构造各种查询条件,如eq(等于)、ne(不等于)、gt(大于)、lt(小于)、like(模糊查询)、in(包含在指定集合中)等。通过链式调用这些方法,可以轻松构建出复杂的查询条件。
    • 例如,要查询年龄大于 18 岁且姓名以 “张” 开头的用户列表,可以使用以下代码:
  • 条件构造器还支持逻辑运算,如and(与)、or(或)等,可以组合多个条件进行更精确的查询。
  • 分页插件
    • 提供了便捷的分页功能,只需在配置文件中进行简单配置,即可实现对查询结果的分页。它支持多种数据库的分页方式,如 MySQL 的LIMIT关键字、Oracle 的ROWNUM伪列、SQL Server 的OFFSET FETCH子句等。
    • 在进行分页查询时,开发人员只需设置当前页码和每页显示的记录数,然后调用分页查询方法即可获取分页后的结果。例如:
Page<User> page = new Page<>(1, 10);
Page<User> userPage = userMapper.selectPage(page, null);
List<User> userList = userPage.getRecords();
  • 分页插件还提供了一些额外的功能,如获取总记录数、获取总页数等,方便开发人员在前端页面进行分页展示和导航。
  • 逻辑删除
    • 通过在表中添加一个逻辑删除字段,将数据标记为删除状态,而不是真正从数据库中删除。在 MyBatis-Plus 中,只需在实体类的对应字段上添加@TableLogic注解,即可开启逻辑删除功能。
    • 当执行删除操作时,实际上是将逻辑删除字段的值更新为指定的删除标识,而不是执行物理删除。这样可以避免数据的误删,同时也方便了数据的恢复。在查询数据时,默认会过滤掉逻辑删除的数据,只有在需要查询已删除数据时,才需要特殊处理。
  • 自动填充
    • 可以实现对实体类中某些字段的自动填充,如创建时间、更新时间、创建人、更新人等。开发人员只需定义MetaObjectHandler接口的实现类,在该实现类中重写insertFillupdateFill方法,即可在插入或更新数据时自动填充这些字段的值。
    • 例如,在insertFill方法中可以设置创建时间和创建人的值,在updateFill方法中可以设置更新时间和更新人的值。通过这种方式,可以确保数据库中的数据在插入和更新时,相关的填充字段能够自动获取正确的值,提高了数据的一致性和完整性。

配置与整合

  • 与 Spring Boot 整合:MyBatis-Plus 与 Spring Boot 的整合非常便捷。只需在 Spring Boot 项目中添加 MyBatis-Plus 的相关依赖,然后在配置文件中配置数据库连接信息、MyBatis-Plus 的相关参数等,即可完成整合。Spring Boot 会自动扫描并加载 MyBatis-Plus 的配置和组件,使开发人员能够快速开始使用 MyBatis-Plus 进行开发。
  • 自定义配置:MyBatis-Plus 支持多种自定义配置,如全局配置、插件配置等。在全局配置中,可以设置一些全局属性,如是否开启驼峰命名转换、是否开启 SQL 日志打印等。插件配置则允许开发人员根据实际需求添加自定义插件,如性能分析插件、分页插件等,以扩展 MyBatis-Plus 的功能。

性能优化与扩展

  • 性能优化:MyBatis-Plus 在性能方面与 MyBatis 相当,同时提供了一些性能优化的功能。例如,分页插件可以根据不同的数据库选择最优的分页方式,提高分页查询的性能。此外,MyBatis-Plus 还支持缓存机制,可以将常用的数据缓存到内存中,减少对数据库的访问次数,提高系统的响应速度。
  • 扩展机制:MyBatis-Plus 提供了丰富的扩展点,开发人员可以通过实现自定义插件、拦截器等方式来扩展其功能。例如,可以开发一个自定义插件来实现对 SQL 语句的拦截和修改,或者开发一个拦截器来实现对数据访问层的性能监控和统计。

社区与生态

  • 活跃的社区支持:MyBatis-Plus 拥有庞大且活跃的社区,开发人员可以在社区中提问、分享经验、参与讨论。社区还会不断地对框架进行优化和改进,及时修复发现的问题,并添加新的功能特性。
  • 丰富的文档资源:官方提供了详细的文档,包括快速入门指南、功能介绍、配置说明、使用示例等,方便开发人员学习和使用。此外,社区中也有大量的博客、教程等资源,帮助开发人员更好地理解和掌握 MyBatis-Plus。

MyBatis-Plus 通过其丰富的功能特性、便捷的配置与整合方式、良好的性能优化和扩展机制,以及活跃的社区支持,成为了 Java 开发中广泛使用的持久层开发框架,为开发人员提供了高效、便捷的数据库操作解决方案。

相关文章:

MyBatis plus详解

核心功能 代码生成器 它能够依据数据库表结构&#xff0c;自动生成涵盖实体类、Mapper 接口、Mapper XML 文件、Service 接口与实现类等在内的基础代码。开发人员只需简单配置数据库连接信息、表名以及生成代码的相关参数&#xff0c;即可快速生成符合项目规范的基础代码&…...

【数据挖掘】数据预处理——以鸢尾花数据集为例

数据预处理——以鸢尾花数据集为例 一、实验手册&#xff08;一&#xff09;实验目的&#xff08;二&#xff09;实验原理&#xff08;三&#xff09;实验环境&#xff08;四&#xff09;实验步骤&#xff08;五&#xff09;实验报告要求 二、案例代码&#xff08;以鸢尾花数据…...

根据文件名称查询文件所在位置

在 Linux 中&#xff0c;根据文件名称查询文件所在位置主要通过命令行工具实现&#xff0c;以下是几种常用方法&#xff1a; --- ### **1. 使用 find 命令&#xff08;最灵活&#xff09;** find 命令可以递归搜索指定目录下的文件&#xff0c;支持按名称、类型、时间等条件过…...

记一次wsl2+docker无法运行的经历

前情提要 由于某个大创项目的需要和对猫娘机器人的迫切渴求&#xff08;bushi 需要在电脑里面安装docker desktop。由于电脑里面安装了wsl2环境 因此决定使用wsl2dockerdesktop的方式配置docker 遇到的问题 在像往常一样安装docker desktop并且启动时 提示错误&#xff1a; …...

XSS介绍通关XSS-Labs靶场

目录 XSS XSS的类型 1.存储型XSS&#xff08;PXSS&#xff09;&#xff1a; 2. 反射型XSS&#xff08;N-PXSS&#xff09;&#xff1a; 3. DOM型XSS&#xff1a; 4. 突变型XSS&#xff08;mXSS&#xff09;&#xff1a; 5. 通用型XSS&#xff08;UXSS&#xff09;&#x…...

枚举的定义及其使用

在Java中&#xff0c;enum&#xff08;枚举&#xff09;是一个特殊的类&#xff0c;用于表示一组常量。enum类型在Java中提供了一种类型安全的方式来定义常量&#xff0c;相比传统的常量&#xff08;如public static final变量&#xff09;&#xff0c;它更加简洁、类型安全&am…...

[特殊字符][特殊字符][特殊字符][特殊字符][特殊字符][特殊字符]壁紙 流光染墨,碎影入梦

#Cosplay #&#x1f9da;‍♀️Bangni邦尼&#x1f430;. #&#x1f4f7; 穹妹 Set.01 #后期圈小程序 琼枝低垂&#xff0c;霜花浸透夜色&#xff0c;风起时&#xff0c;微光轻拂檐角&#xff0c;洒落一地星辉。远山隐于烟岚&#xff0c;唯余一抹青黛&#xff0c;勾勒出天光水…...

996引擎-接口测试:消息Tips

996引擎-接口测试:消息Tips 发送视野内广播消息 sendrefluamsg发送聊天框消息 sendmsg发送地图消息 sendmapmsg打印消息到控制台 release_print发送自定义颜色的文字信息 guildnoticemsg测试NPC参考资料发送视野内广播消息 sendrefluamsg function npc_test_onclick1(player)-…...

Redis设计与实现-底层实现

Redis底层实现 1、事件1.1 文件事件1.2 时间事件1.3 事件调度 2、Redis客户端2.1 客户端的相关属性2.2 客户端的创建与关闭2.2.1 普通客户端的创建2.2.2 普通客户端的关闭2.2.3 AOF的伪客户端2.2.4 Lua脚本的伪客户端 3、Redis服务端3.1 命令请求的执行过程3.1.1 客户端发送命令…...

acwing1295. X的因子链

题目链接&#xff1a;1295. X的因子链 - AcWing题库 算法&#xff1a;数论线性筛法求素数 x如果想要尽可能多的分为几个因子&#xff0c;那么就应该分成素数&#xff0c;因为如果是合数说明还能分。 题目要求求出①这段序列的最大长度和②最大长度序列的个数 最大长度&#x…...

练习-班级活动(map存储键值对)

问题描述 小明的老师准备组织一次班级活动。班上一共有 n 名 (n 为偶数) 同学&#xff0c;老师想把所有的同学进行分组&#xff0c;每两名同学一组。为了公平&#xff0c;老师给每名同学随机分配了一个 n 以内的正整数作为 id&#xff0c;第 i 名同学的 id 为 ai​。 老师希望…...

34-三数之和

给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 方法一&…...

Excel online开始支持Copilot高级数据分析:Python提供强大的数据见解

前文讲过Excel中的copilot可以直接调用Python进行高级数据分析&#xff1a; Copilot&#xff1a;Excel中的Python高级分析来了 Python in Excel高级分析&#xff1a;一键RFM分析 超越DeepSeek&#xff1a;Copilot in Excel高级数据分析原生支持Python无需安装软件 零代码、…...

【数据结构】kmp算法介绍+模板代码

目录 1.kmp算法介绍 2.应用场景 3.KMP与暴力算法比较 4.模板代码 KMP算法是一种高效的字符串匹配算法&#xff0c;用于在文本串中快速查找模式串的所有出现位置。其核心思想是通过预处理模式串&#xff0c;避免在匹配失败时进行不必要的回溯&#xff0c;从而将时间复杂度优…...

python关键字汇总

文章目录 1. 变量与类型相关2. 控制流相关3. 函数与类相关4. 异常处理相关5. 模块相关6. 其他 在 Python 3 里有 35 个关键字&#xff0c;它们各自具备特定的用途与意义 1. 变量与类型相关 True、False 意义&#xff1a;布尔类型的常量&#xff0c;分别代表逻辑真与逻辑假。示…...

六十天前端强化训练之第二十五天之组件生命周期大师级详解(Vue3 Composition API 版)

欢迎来到编程星辰海的博客讲解 看完可以给一个免费的三连吗&#xff0c;谢谢大佬&#xff01; 目录 一、生命周期核心知识 1.1 生命周期全景图 1.2 生命周期钩子详解 1.2.1 初始化阶段 1.2.2 挂载阶段 1.2.3 更新阶段 1.2.4 卸载阶段 1.3 生命周期执行顺序 1.4 父子组…...

油候插件、idea、VsCode插件推荐(自用)

开发软件&#xff1a; 之前的文章&#xff1a; 开发必装最实用工具软件与网站 推荐一下我使用的开发工具 目前在用的 油候插件 AC-baidu-重定向优化百度搜狗谷歌必应搜索_favicon_双列 让查询变成多列&#xff0c;而且可以流式翻页 Github 增强 - 高速下载 github下载 TimerHo…...

R语言基于ggscitable包复现一篇3.5分的文章的连续变量交互效应(交互作用)的可视化图

交互作用效应(p for Interaction)在SCI文章中可以算是一个必杀技&#xff0c;几乎在高分的SCI中必出现&#xff0c;因为把人群分为亚组后再进行统计可以增强文章结果的可靠性&#xff0c;进行可视化后可以清晰的表明变量之间的关系。不仅如此&#xff0c;交互作用还可以使用来进…...

mac环境下chatwoot客服聊天docker本地部署+对接通义千问Qwen2.5

&#x1f680; 安装docker-desktop &#x1f680; 定义一个.env环境变量文件docker-compose.yaml .env # Learn about the various environment variables at # https://www.chatwoot.com/docs/self-hosted/configuration/environment-variables/#rails-production-variables…...

mac上安装nvm及nvm的基本语法使用!!

种一棵树&#xff0c;最好是十年前&#xff0c;其次是现在&#xff01;想要改变&#xff0c;从此刻开始&#xff0c;一切都不晚&#xff01; 目录 nvm是什么&#xff1f;前提条件&#xff1a;安装homebrew如果系统已经有node版本&#xff1a;在mac上安装nvm&#xff1a;用nvm安…...

论文阅读:2024-NAACL Semstamp、2024-ACL (Findings) k-SemStamp

总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 Semstamp: A semantic watermark with paraphrastic robustness for text generation https://aclanthology.org/2024.naacl-long.226/ k-SemStamp: A Clustering-Based Semantic Wate…...

本地JAR批量传私服

在有网络隔离的环境下&#xff0c;Maven项目如果没有搭建私服就得把用到的通用组件通过U盘在每个组员间拷贝来拷贝去。非常的麻烦跟低效。搭建私服&#xff0c;如果通用组件很多的时候手工一个一个上传更是非常的麻烦跟低效&#xff1b; 我就遇上这问题&#xff0c;跟A公司合作…...

Linux上位机开发实战(camera视频读取)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 关于linux camera&#xff0c;一般都是认为是mipi camera&#xff0c;或者是usb camera。当然不管是哪一种&#xff0c;底层的逻辑都是v4l2&#x…...

OpenCV图像处理基础1

OpenCV 提供了丰富的图像处理和计算机视觉功能,包括图像读取、显示、颜色空间转换、滤波、边缘检测、轮廓检测等。 本章将介绍 OpenCV 的基本概念和常用功能。 图像的表示和处理 OpenCV 通过 NumPy 数组 来表示图像数据,每个图像就是一个多维数组,其中每个元素对应图像中的…...

Python Web 框架 Django、Flask 和 FastAPI 对比

在探索 Python Web 框架时&#xff0c;Django、Flask 和 FastAPI 无疑是最常被提及的名字。根据我们最新的 Python 开发者调查&#xff0c;这三大框架继续稳坐后端 Web 开发的热门宝座。它们均为开源项目&#xff0c;并且与 Python 的最新版本无缝兼容。然而&#xff0c;面对不…...

TISAX认证注意事项的详细介绍

TISAX&#xff08;Trusted Information Security Assessment Exchange&#xff09;认证的注意事项犹如企业在信息安全领域航行时必须遵循的灯塔指引&#xff0c;至关重要且不容忽视。以下是对TISAX认证注意事项的详尽阐述&#xff1a; 首先&#xff0c;企业需深入研读并理解TI…...

JavaScript |(六)DOM事件 | 尚硅谷JavaScript基础实战

学习来源&#xff1a;尚硅谷JavaScript基础&实战丨JS入门到精通全套完整版 笔记来源&#xff1a;在这位大佬的基础上添加了一些东西&#xff0c;欢迎大家支持原创&#xff0c;大佬太棒了&#xff1a;JavaScript |&#xff08;六&#xff09;DOM事件 | 尚硅谷JavaScript基础…...

【动态规划】详解混合背包问题

目录 1. 前置文章2. 题目3. 小结 1. 前置文章 本文前置文章&#xff1a; 【动态规划】详解 0-1背包问题【动态规划】详解完全背包问题【动态规划】详解分组背包问题【动态规划】详解多重背包问题 下面是三种背包模式的区别&#xff1a; 0 - 1 背包 是说&#xff1a;有 n 个…...

Nodejs 项目打包部署方式

方式一&#xff1a;PM2 一、准备工作 确保服务器上已安装 Node.js 环境建议使用 PM2 进行进程管理&#xff08;需要额外安装&#xff09; 二、部署步骤 1.首先在服务器上安装 PM2&#xff08;推荐&#xff09;&#xff1a; npm install -g pm22.将项目代码上传到服务器&…...

银河麒麟操作系统的上下游版本判断

以下内容摘自《银河麒麟操作系统进阶应用》一书。 几百款Linux发行版之间并不是完全独立的&#xff0c;绝大多数Linux发行版可以追溯到几个关键的“祖先”发行版&#xff0c;其中最为人熟知的包括Debian、Fedora、Slackware和Arch Linux。这些“祖先”发行版又称“原始”发行版…...

Retrofit中scalars转换html为字符串

简介 在Retrofit中&#xff0c;如果你想直接获取HTML或其他文本格式的响应内容而不是将其映射到一个模型类&#xff0c;ScalarsConverterFactory 就派上用场了。ScalarsConverterFactory 是一个转换器工厂&#xff0c;它能够将响应体转换为Java基本类型如String、Integer或Byte…...

Java基础面试题学习

转换成自已的语言来回答&#xff0c;来源小林coding、沉默王二以及其它资源和自已改编。 1、概念 1、说一下Java的特点 我认为Java有很多特点 首先是平台无关性&#xff1a;Java可以实现一次编译到处运行&#xff0c;因为Java的编译器将源代码编译成字节码&#xff0c;使得该…...

# [RPA] 使用八爪鱼进行高效网页数据采集

在许多行业中&#xff0c;数据是核心资产。然而&#xff0c;虽然许多网站的文本内容可以免费访问&#xff0c;但手动一条一条采集&#xff0c;不仅耗时耗力&#xff0c;还容易出错。这种情况下&#xff0c;使用自动化工具来提高采集效率就显得尤为重要。本文将介绍 八爪鱼 这一…...

【工具变量】全国地级市地方ZF债务数据集(2014-2023年)

地方ZF债务是地方财政运作的重要组成部分&#xff0c;主要用于基础设施建设、公共服务及经济发展&#xff0c;是衡量地方财政健康状况的重要指标。近年来&#xff0c;我国地级市的地方ZF债务规模不断变化&#xff0c;涉及一般债务和专项债务等多个方面&#xff0c;对金融市场、…...

6.5840 Lab 3: Raft

论文很重要 raft-zh_cn/raft-zh_cn.md at master maemual/raft-zh_cn GitHub Part 3A: leader election (moderate) 十次test都过了 实现 Raft 的领导者选举和心跳机制&#xff08;AppendEntries RPC&#xff0c;无日志条目&#xff09;。第 3A 部分的目标是实现以下功能&am…...

DCDC36V同步降压 输出可调 2A电流恒压芯片SL1588H 替换LV3842

在当今电子设备飞速发展的时代&#xff0c;电源管理芯片的性能优劣直接关乎设备的稳定性与高效运行。对于诸多需要将 36V 电压进行同步降压、输出电压可调且稳定输出 2A 电流的应用场景&#xff0c;一款卓越的恒压芯片不可或缺。SL1588H 正凭借其领先的技术和出色的性能&#x…...

AH4953A双PMOS管深度解析:无线充系统的“高效开关”设计实践

AH4953 30v5A双PMOS管深度解析&#xff1a;无线充系统的“高效开关”设计实践 1. 产品定位与基础特性 AH4953A双通道P沟道MOSFET&#xff0c;专为无线充电、电源管理等高频开关场景优化。其核心优势体现在&#xff1a; • 高耐压低损耗&#xff1a;30V漏源电压&#xff08;Vd…...

图数据库Neo4j和JDK安装与配置教程(超详细)

目录 前言 一、Java环境配置 &#xff08;一&#xff09;JDK的下载与安装 &#xff08;二&#xff09;JDK环境配置 &#xff08;三&#xff09;检测JDK17是否配置成功 二、Neo4j的安装与配置 &#xff08;一&#xff09;Neo4j的下载与安装 &#xff08;二&#xff09;N…...

现代美学工业风品牌海报徽标设计PSAI无衬线英文字体安装包 Moldin – Condensed Sans Serif Font

现代几何工业风品牌海报徽标设计无衬线英文字体安装包 Moldin — Condensed Sans Serif Font Moldin 是一个粗体浓缩的无衬线字体系列&#xff0c;旨在为显示和标题提供最大的影响。Moldin 有 6 种粗细可供选择&#xff0c;从常规到黑色&#xff0c;提供静态和可变格式&#x…...

Excel(函数进阶篇):FILTER函数全解读、XLOOKUP函数全解读、UNIQUE函数、数组与数组公式

目录 数组与数组函数office365中VLOOKUP函数的加强数组中的多条件判断FILTER函数详解用法概述函数语法 基础筛选多条件筛选进阶技巧结合动态数组 高级函数整合错误处理注意事项FILTER经典问题&#xff1a;一对多查询 XLOOKUP函数XLOOKUP基础用法XLOOKUP函数多条件匹配和双向查询…...

django入门教程之request和reponse【二】

接上节&#xff1a;入门【一】 再创建一个orders子应用&#xff0c;python manager.py startapp orders&#xff0c;orders目录中新建一个urls.py文件。结构如图&#xff1a; 通过上节课&#xff0c;我们知道在views.py文件中编写函数时&#xff0c;有一个默认入参request&…...

第十五次CCF-CSP认证(含C++源码)

第十五次CCF-CSP认证 小明上学满分思路 数据中心满分思路 小明放学满分题解 小明上学 题目链接 满分思路 其实题目看着长&#xff0c;但是做起来是非常好写的&#xff0c;其实主要原因在于&#xff0c;他的红绿灯的变化规律是一定的&#xff0c;而且小明路上的每次红绿灯情况…...

Excel处理控件Spire.XLS系列教程:C# 在 Excel 中添加或删除单元格边框

单元格边框是指在单元格或单元格区域周围添加的线条。它们可用于不同的目的&#xff0c;如分隔工作表中的部分、吸引读者注意重要的单元格或使工作表看起来更美观。本文将介绍如何使用 Spire.XLS for .NET 在 C# 中添加或删除 Excel 单元格边框。 安装 Spire.XLS for .NET E-…...

混合精度-基于torch内部

定义 混合精度训练是一种在深度学习模型训练过程中&#xff0c;同时使用不同精度数据类型&#xff08;主要是单精度 FP32 和半精度 FP16&#xff09;来进行计算和存储的技术。以下是具体介绍&#xff1a; 数据类型&#xff1a; 单精度&#xff08;FP32&#xff09;&#xff1…...

Ubuntu16.04网卡ens33找不到异常修复

重启网络 systemctl stop NetworkManager systemctl restart networking允许网络可用 连接网络 验证网络...

C++编译流程

编译器其实就是一个翻译器&#xff0c;把我们的文件内容翻译成机器能够看懂的指令&#xff0c;但如何合理翻译是核心。 C语言编译 需要经过以下几步&#xff1a; 词法分析&#xff1a;扫描代码&#xff0c;确定单词类型&#xff0c;比如是变量还是函数&#xff0c;是标识符还…...

人工智能:企业RAG方案

一、LangChain FAISS、Milvus / Weaviate介绍 在企业 RAG &#xff08;Retrieval-Augmented Generation&#xff09;方案中&#xff0c;LangChain FAISS 和 Milvus / Weaviate 都是用于向量检索&#xff08;Vector Search&#xff09;的核心工具。两者的核心区别在于 存储方…...

【Git流程最佳实践】 开发较大功能时应使用project branch

目录 背景和失败经验名词定义曾经使用project branch犯的错 建立project branch的必要性正确的使用project branch的方法 背景和失败经验 我们曾经使用过project branch&#xff0c;但是后来放弃了 名词定义 特性branch(特性分支)&#xff1a; 在开发跨越新特性的时候会从主…...

线程的概念

目录 线程的概念 创建线程快速验证 物理内存管理 再谈页表 今天我们学习线程的概念 线程的概念 进程是一个指向起来的程序&#xff0c;进程内核数据结构代码和数据&#xff0c;线程称为指向流&#xff0c;执行粒度比进程要更细&#xff0c;是进程内部的一个执行分支&…...

firefly经典蓝牙和QProcess、QFileSystemWatcher记录

QProcess 默认不会启动一个 shell 来解析命令,而是直接调用操作系统的系统调用来启动外部程序。也就是通过fork一个子线程或者exec一个子进程来执行命令。 QProcess的参数模式 QProcess 需要明确指定命令的可执行文件路径或参数列表。 如果命令是一个可执行文件的路径…...