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

MyBatis-Plus 对比传统 MyBatis 的优势

在现代的 Java 开发中,MyBatisMyBatis-Plus 都是流行的持久层框架。MyBatis 是一个轻量级的 ORM 框架,帮助开发者通过映射文件或注解方式来执行 SQL 操作。MyBatis-Plus 是在 MyBatis 基础上进行的增强,提供了许多简化和优化功能,使得开发者在使用时能更加高效。

本文将对比 MyBatisMyBatis-Plus,并详细分析 MyBatis-Plus 提供的增强功能、性能优化以及它如何提升开发效率。


1. MyBatis 与 MyBatis-Plus 的差异

1.1 MyBatis 的基本特点

  • 灵活性:MyBatis 允许开发者通过 XML 配置文件或注解方式编写 SQL 查询,具有较高的灵活性。
  • 手动编写 SQL:开发者需要手动编写 SQL 语句,包括增、删、改、查等操作的实现。
  • 支持动态 SQL:MyBatis 支持动态 SQL,可以根据条件构造不同的 SQL 查询。
  • 需要大量配置:在 MyBatis 中,开发者需要自己编写 XML 映射文件,配置映射关系,手动配置 SqlSessionFactorySqlSession 等对象。

1.2 MyBatis-Plus 的增强功能

MyBatis-Plus 是对 MyBatis 的扩展,提供了更高效的配置和操作方式,尤其在减少了大量重复代码的编写。以下是 MyBatis-Plus 的一些关键优势:

  1. 通用 CRUD 操作:MyBatis-Plus 提供了内置的通用 CRUD 方法(如 saveremoveupdateByIdselectById 等),不需要开发者手动编写 SQL。
  2. 条件构造器(QueryWrapper 和 UpdateWrapper):MyBatis-Plus 提供了 QueryWrapperUpdateWrapper,使得动态 SQL 构建更加简洁。
  3. 分页查询:MyBatis-Plus 内置了分页插件,可以非常简单地进行分页查询。
  4. 乐观锁支持:内置乐观锁插件,支持并发操作时的数据一致性保障。
  5. 代码生成器:MyBatis-Plus 提供了代码生成器,能够自动生成实体类、Mapper 接口、Service 层代码。
  6. 自动填充:支持字段自动填充,避免了手动设置字段值。

1.3 对比总结

特性MyBatisMyBatis-Plus
开发速度需要手动编写 SQL 和映射文件,开发速度较慢内置通用 CRUD 操作,减少了代码量,开发速度更快
灵活性灵活,支持复杂的动态 SQL灵活性略低,但提供了简化常见操作的封装
代码量需要编写大量的 XML 或注解提供通用方法,减少了重复代码和 XML 配置
分页支持需要手动编写分页查询 SQL内置分页插件,自动实现分页功能
自动化功能提供自动代码生成、自动填充、乐观锁等功能

2. MyBatis-Plus 提供的增强功能

2.1 通用 CRUD 操作

MyBatis-Plus 提供了内置的通用 CRUD 方法,使得开发者不需要手动编写增、删、改、查的 SQL 语句。

public interface UserMapper extends BaseMapper<User> {// 继承 BaseMapper 后,自动获得常见的增、删、改、查方法
}

这些方法包括:

  • insert(T entity):插入一条记录。
  • deleteById(Serializable id):根据主键删除记录。
  • updateById(T entity):根据主键更新记录。
  • selectById(Serializable id):根据主键查询记录。
  • selectList(QueryWrapper<T> queryWrapper):根据条件查询多条记录。

2.2 条件构造器(QueryWrapper 和 UpdateWrapper)

QueryWrapperUpdateWrapper 提供了丰富的条件构造方法,可以简化 SQL 的构建。

QueryWrapper 示例
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 25);  // 查询年龄为 25 的用户
List<User> users = userMapper.selectList(queryWrapper);
UpdateWrapper 示例
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id", 1).set("age", 30);  // 将 ID 为 1 的用户年龄更新为 30
userMapper.update(null, updateWrapper);

2.3 分页查询

MyBatis-Plus 内置了分页插件,通过配置非常容易实现分页查询,免去了手动写分页 SQL 的麻烦。

分页查询示例
Page<User> page = new Page<>(1, 10);  // 第 1 页,每页 10 条记录
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.gt("age", 18);  // 查询年龄大于 18 的用户
IPage<User> userPage = userMapper.selectPage(page, queryWrapper);System.out.println(userPage.getRecords());  // 获取查询结果
System.out.println(userPage.getTotal());  // 获取总记录数

2.4 乐观锁插件

MyBatis-Plus 提供了 乐观锁插件,通过在实体类中标记 @Version 注解来启用乐观锁,自动管理版本字段,避免并发冲突。

乐观锁示例
@Data
@TableName("user")
public class User {@TableIdprivate Long id;private String name;private Integer age;private String email;@Version  // 乐观锁字段private Integer version;
}

MyBatis-Plus 会自动管理版本字段,确保在并发情况下,只有一个事务能够成功修改数据,避免数据不一致。


3. 开发效率的提升

3.1 自动代码生成

MyBatis-Plus 提供了 代码生成器,可以根据数据库表自动生成实体类、Mapper 接口、Service 层代码,减少手动编写代码的时间。

自动生成代码示例
public class CodeGenerator {public static void main(String[] args) {AutoGenerator mpg = new AutoGenerator();// 全局配置GlobalConfig gc = new GlobalConfig();gc.setOutputDir("D://code");  // 输出目录gc.setAuthor("developer");  // 作者gc.setOpen(false);mpg.setGlobalConfig(gc);// 数据源配置DataSourceConfig dsc = new DataSourceConfig();dsc.setUrl("jdbc:mysql://localhost:3306/testdb");dsc.setDriverName("com.mysql.cj.jdbc.Driver");dsc.setUsername("root");dsc.setPassword("password");mpg.setDataSource(dsc);// 包配置PackageConfig pc = new PackageConfig();pc.setModuleName("user");mpg.setPackageInfo(pc);// 执行生成mpg.execute();}
}

通过这个代码生成器,你只需要配置数据库连接和包路径,就可以自动生成数据库表对应的实体类、Mapper、Service 等代码。

3.2 减少重复代码

由于 MyBatis-Plus 提供了丰富的 通用方法,开发者不再需要编写重复的 SQL 查询和数据库操作代码。通用的 selectByIdinsertupdate 等方法可以直接使用,极大地提升了开发效率。


4. 性能优化的关键

4.1 内存和 CPU 性能

  • 避免全表查询:尽量避免不加条件的全表查询,尤其是在数据量大的情况下。使用 QueryWrapper 设置查询条件,避免全表扫描。
  • 使用分页查询:对于需要展示大量数据的场景,使用分页查询 selectPage 来限制每次查询的数据量,减小内存负载。

4.2 SQL 执行效率

  • 批量操作:对于大量的插入、更新或删除操作,可以使用 executeBatch 方法进行批量操作,减少数据库连接的开销和网络传输的延迟。
  • 缓存机制:MyBatis-Plus 可以与 MyBatis 缓存机制结合使用,减少重复查询,提高性能。

4.3 使用索引

确保数据库表中常用的查询字段(如主键、外键)有合适的索引,这样能够大大提高查询效率。


5. 总结

  • MyBatis-Plus 提供了大量的增强功能,使得开发者能够更加高效地进行数据库操作。它减少了手动编写 SQL 和冗余代码的工作,提高了开发效率。
  • 通用 CRUD 操作条件构造器分页查询乐观锁自动代码生成 等功能极大简化了数据库访问层的开发。
  • 性能优化 方面,MyBatis-Plus 提供了批量操作、SQL 查询优化和缓存等机制,能够有效提升数据库操作的效率。

通过合理使用 MyBatis-Plus,开发者能够提高数据库操作的效率,减少冗余代码,并提升应用的整体性能。 🚀

相关文章:

MyBatis-Plus 对比传统 MyBatis 的优势

在现代的 Java 开发中&#xff0c;MyBatis 和 MyBatis-Plus 都是流行的持久层框架。MyBatis 是一个轻量级的 ORM 框架&#xff0c;帮助开发者通过映射文件或注解方式来执行 SQL 操作。MyBatis-Plus 是在 MyBatis 基础上进行的增强&#xff0c;提供了许多简化和优化功能&#xf…...

被AWS反撸了,试一下能否申请退还

经过来回几轮沟通&#xff0c;已扣的42美金将退回31美金&#xff0c;未扣的16美金将免除扣款。 31美金的具体计算方法我不知道&#xff0c;对方的回复如下&#xff08;是了&#xff0c;AWS的客服是用中文回复的&#xff09;&#xff1a; 我理解此结果可能不完全符合您所期望的…...

基于Spring Boot的产业园区智慧公寓管理系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

MySQL 事务笔记

MySQL 事务笔记 目录 事务简介事务操作事务四大特性并发事务问题事务隔离级别总结 事务简介 事务&#xff08;Transaction&#xff09;是数据库操作的逻辑单元&#xff0c;由一组不可分割的SQL操作组成。主要用于保证&#xff1a; 多个操作的原子性&#xff08;要么全部成功…...

SpringBoot 使用 spring.profiles.active 来区分不同环境配置

很多时候&#xff0c;我们项目在开发环境和生产环境的配置是不一样的&#xff0c;例如&#xff0c;数据库配置&#xff0c;在开发的时候&#xff0c;我们一般用测试数据库&#xff0c;而在生产环境&#xff0c;我们要用生产数据库&#xff0c;这时候&#xff0c;我们可以利用 p…...

# C# 中堆(Heap)与栈(Stack)的区别

在 C# 中&#xff0c;堆和栈是两种不同的内存分配机制&#xff0c;它们在存储位置、生命周期、性能和用途上存在显著差异。理解堆和栈的区别对于优化代码性能和内存管理至关重要。 1. 栈&#xff08;Stack&#xff09; 1.1 定义 栈是一种后进先出&#xff08;LIFO&#xff0…...

IP---网络类型

这只是IP的其中一块内容-网络类型&#xff0c;IP还有更多内容可以查看IP专栏&#xff0c;前一章内容为访问服务器流程&#xff0c;可通过以下路径查看IP----访问服务器流程-CSDN博客&#xff0c;欢迎指正 2.网络类型 网络类型---根据二层&#xff08;数据链路层&#xff09;所…...

jQuery UI API 文档

jQuery UI API 文档 引言 jQuery UI 是一个基于 jQuery 的用户界面库,它提供了丰富的交互式组件和效果,使得网页开发变得更加简单和高效。本文档旨在为开发者提供全面的 jQuery UI API 信息,帮助您更好地理解和应用 jQuery UI。 jQuery UI 简介 什么是 jQuery UI? jQu…...

rust 前端npm依赖工具rsup升级日志

rsup是使用 rust 编写的一个前端 npm 依赖包管理工具&#xff0c;可以获取到项目中依赖包的最新版本信息&#xff0c;并通过 web 服务的形式提供查看、升级操作等一一系列操作。 在前一篇文章中&#xff0c;记录初始的功能设计&#xff0c;自己的想法实现过程。在自己的使用过…...

J-LangChain,用Java实现LangChain编排!轻松加载PDF、切分文档、向量化存储,再到智能问答

Java如何玩转大模型编排、RAG、Agent&#xff1f;&#xff1f;&#xff1f; 在自然语言处理&#xff08;NLP&#xff09;的浪潮中&#xff0c;LangChain作为一种强大的模型编排框架&#xff0c;已经在Python社区中广受欢迎。然而&#xff0c;对于Java开发者来说&#xff0c;能…...

文档识别-C#中英文文档识别接口-PDF文件内容识别API

文档识别接口可满足用户在数字化转型过程中对文档处理的高效、准确需求。翔云文档识别接口以成熟的文字识别技术、自然语言处理技术、图像识别技术为核心&#xff0c;能够将文档上的非可编辑文本转化为可编辑的数据&#xff0c;从而提升信息处理的速度与实现文档数字化管理的准…...

什么是元数据管理?为什么数据治理的第一步是整理元数据?

什么是元数据管理&#xff1f; 以下是关于元数据管理、数据治理从元数据开始的原因以及数据治理逻辑的简单介绍&#xff1a; 元数据管理 元数据是关于数据的数据&#xff0c;它主要描述了数据的定义、来源、关系、质量、用途等信息。比如在一个学生成绩管理系统中&#xff…...

QSplashScreen --软件启动前的交互

目录 QSplashScreen 类介绍 使用方式 项目中使用 THPrinterSplashScreen头文件 THPrinterSplashScreen实现代码 使用代码 使用效果 QSplashScreen 类介绍 QSplashScreen 是 Qt 中的一个类&#xff0c;用于显示启动画面。它通常在应用程序启动时显示&#xff0c;以向用户显…...

react使用react-quill 富文本插件、加入handlers富文本不显示解决办法

可以调整图片大小 quill-image-resize-module-react 加入插件quill-image-resize-module-reactQuill.register("modules/imageResize", ImageResize); // 注册图片缩放富文本配置中加入如下const quildConfig {toolbar: {container: [["bold", "ital…...

基于vue框架的的银生中学图书管理系统c7b4q(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,书籍分类,书籍信息,书籍借阅,书籍归还 开题报告内容 基于Vue框架的的银生中学图书管理系统开题报告 一、项目背景与意义 随着信息技术的飞速发展和教育现代化进程的加快&#xff0c;学校图书管理面临着前所未有的挑战与机遇。银…...

2025年02月27日Github流行趋势

项目名称&#xff1a;aibrix 项目地址url&#xff1a;https://github.com/vllm-project/aibrix 项目语言&#xff1a;Jupyter Notebook 历史star数&#xff1a;2568 今日star数&#xff1a;554 项目维护者&#xff1a;Jeffwan, varungup90, brosoul, nwangfw, kr11 项目简介&am…...

去耦电容的作用详解

在霍尔元件的实际应用过程中&#xff0c;经常会用到去耦电容。去耦电容是电路中装设在元件的电源端的电容&#xff0c;其作用详解如下&#xff1a; 一、基本概念 去耦电容&#xff0c;也称退耦电容&#xff0c;是把输出信号的干扰作为滤除对象。它通常安装在集成电路&#xf…...

Vue.js响应式基础

响应式基础​ API 参考 本页和后面很多页面中都分别包含了选项式 API 和组合式 API 的示例代码。现在你选择的是 组合式 API。你可以使用左侧侧边栏顶部的“API 风格偏好”开关在 API 风格之间切换。 声明响应式状态​ ref()​ 在组合式 API 中,推荐使用 ref() 函数来声明…...

解决Deepseek“服务器繁忙,请稍后再试”问题,基于硅基流动和chatbox的解决方案

文章目录 前言操作步骤步骤1&#xff1a;注册账号步骤2&#xff1a;在线体验步骤3&#xff1a;获取API密钥步骤4&#xff1a;安装chatbox步骤5&#xff1a;chatbox设置 价格方面 前言 最近在使用DeepSeek时&#xff0c;开启深度思考功能后&#xff0c;频繁遇到“服务器繁忙&am…...

Java SSE流式数据前后端实现

#Java SSE流式数据前后端实现 Java后端实现 RestController public class SSEController {GetMapping(value "/sse/stream", produces MediaType.TEXT_EVENT_STREAM_VALUE)public SseEmitter streamSse() throws InterruptedException, IOException {SseEmitter …...

DeepSeek开源周Day4:三连发!突破 AI 训练瓶颈的立体解决方案,并行计算三剑客DualPipe、EPLB与Profile-data

项目地址&#xff1a; https://github.com/deepseek-ai/DualPipehttps://github.com/deepseek-ai/eplbhttps://github.com/deepseek-ai/profile-data 开源日历&#xff1a;2025-02-24起 每日9AM(北京时间)更新&#xff0c;持续五天 (4/5)&#xff01; ​ ​ 一、背景概述 …...

3-1 WPS JS宏工作簿的新建与保存(批量新建工作簿)学习笔记

************************************************************************************************************** 点击进入 -我要自学网-国内领先的专业视频教程学习网站 *******************************************************************************************…...

esp8266 rtos sdk开发环境搭建

1. 安装必要的工具 1.1 安装 Git Git 用于从远程仓库克隆代码&#xff0c;你可以从Git 官方网站下载 Windows 版本的安装程序。安装过程中可保持默认设置&#xff0c;安装完成后&#xff0c;在命令提示符&#xff08;CMD&#xff09;或 PowerShell 中输入git --version&#…...

Pycharm使用matplotlib出现的问题(1、不能弹出图表 2、图表标题中文不显示)

Pycharm使用matplotlib出现的问题 问题1&#xff1a;Pycharm调试时出现&#xff1a;AttributeError: module backend_interagg has no attribute FigureCanvas. Did you mean: FigureCanvasAgg? 排查原因&#xff1a;可能是由于matplotlib后端设置不正确或与运行环境不兼容引…...

【MySql】EXPLAIN执行计划全解析:15个字段深度解读与调优指南

文章目录 一、执行计划核心字段总览二、关键字段深度拆解1. type&#xff08;访问类型&#xff09;——查询性能的晴雨表典型场景分析&#xff1a; 2. key_len&#xff08;索引使用长度&#xff09;——索引利用率的检测仪计算示例&#xff1a; 3. Extra&#xff08;附加信息&a…...

学习路程八 langchin核心组件 Models补充 I/O和 Redis Cache

前序 之前了解了Models&#xff0c;Prompt&#xff0c;但有些资料又把这块与输出合称为模型输入输出&#xff08;Model I/O&#xff09;‌&#xff1a;这是与各种大语言模型进行交互的基本组件。它允许开发者管理提示&#xff08;prompt&#xff09;&#xff0c;通过通用接口调…...

Everything——你的文件搜索效率革命

Everything 是一款由 voidtools 开发的文件搜索工具&#xff0c;专为 Windows 系统设计。它以极快的速度和高效的搜索能力著称&#xff0c;能够基于文件名实时定位文件和目录。以下是其主要特点和功能概述&#xff1a; 1. 核心特点 快速搜索&#xff1a;Everything 使用 NTFS…...

【一起学Rust | Tauri2.0框架】单实例应用程序的深入解析:零漏洞实现与优化实战

文章目录 前言一、 单实例应用的意义二、 实现单实例应用的方法1 Windows下的实现1.1 创建命名Mutex1.2 在Tauri应用中集成Mutex检查 2 macOS下的实现2.1 获取Bundle Identifier2.2 检查是否已经有实例在运行 3 Linux下的实现3.1 获取进程列表3.2 检查是否已经有实例在运行 4 在…...

React + TypeScript 数据血缘分析实战

React TypeScript 数据血缘分析实战 目录 技术选型与架构设计核心概念解析基础场景实现 场景一&#xff1a;visx库基础血缘图实现场景二&#xff1a;React-Lineage-DAG企业级方案场景三&#xff1a;动态数据源与复杂交互 TypeScript类型系统深度优化性能优化与工程化实践开源…...

解决 ERROR 1130 (HY000): Host is not allowed to connect to this MySQL server

当使用 MySQL 时&#xff0c;您可能会遇到错误信息“ERROR 1130 (HY000): Host ‘hostname’is not allowed to connect to this MySQL server”这是 MySQL 用于防止未经授权的访问的标准安全特性。实际上&#xff0c;服务器还没有配置为接受来自相关主机的连接。 Common Caus…...

4. 示例:创建带约束的随机地址生成器(范围0x1000-0xFFFF)

文章目录 前言代码示例&#xff1a;运行方法&#xff1a;查看结果&#xff1a;关键功能说明&#xff1a;扩展功能建议&#xff1a; 前言 以下是一个完整的SystemVerilog测试平台示例&#xff0c;包含约束随机地址生成、日志输出和波形生成功能&#xff1a; 代码示例&#xff1…...

Dashboard-frps

通过浏览器查看 frp的状态以及代理统计信息展示。 注&#xff1a;Dashboard 尚未针对大量的 proxy 数据展示做优化&#xff0c;如果出现 Dashboard 访问较慢的情况&#xff0c;请不要启用此功能。 需要在 frps.ini中指定 dashboard服务使用的端口&#xff0c;即可开启此功能&…...

鸿蒙兼容Mapbox地图应用测试

鸿蒙Next已经发布一段时间了&#xff0c;很多之前的移动端地图应用&#xff0c;纷纷都要求适配鸿蒙Next。作为开发者都清楚&#xff0c;所谓的适配其实都是重新开发&#xff0c;鸿蒙的开发语言和纯前端的Javascript不同&#xff0c;也可以Android原始开发的语言不同。鸿蒙自带的…...

PyCharm 的使用 + PyCharm快捷键 + 切换中文界面

2025 - 02 - 27 - 第 62 篇 Author: 郑龙浩 / 仟濹 【PyCharm的使用】 文章目录 如何使用Pycharm1 新建工程&#xff0c;新建 .py 文件&#xff0c;运行2 常用快捷键3 其他快捷键 - DeepSeek 总结如下**代码编辑****导航与定位****查找与替换****运行与调试****代码重构****其…...

Ubuntu下QT安装和调试的常见问题(一)__could_not_dertermine_which_make

前言 Ubuntu下QT的安装会有一些奇怪的问题出现&#xff0c;并没有像Windows下Visual Studio的安装那么直接就可以使用那么方便&#xff0c;本文就“make”挂接的问题&#xff0c;给出一些小的感受。 1、问题的提出 很多问题的解答&#xff0c;AI无论是上文心一言&#xff0c;还…...

JAVA面试_进阶部分_Linux面试题

Linux概述 1. 什么是Linux Linux是一套免费使用和自由传播的类Unix操作系统&#xff0c;是一个基于POSIX和Unix 的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工 具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网 络为核心的设…...

【深度学习】强化学习(RL)-A3C(Asynchronous Advantage Actor-Critic)

A3C&#xff08;Asynchronous Advantage Actor-Critic&#xff09;详解 A3C&#xff08;Asynchronous Advantage Actor-Critic&#xff09; 是 深度强化学习&#xff08;Deep Reinforcement Learning, DRL&#xff09; 领域的重要算法&#xff0c;由 DeepMind 在 2016 年提出。…...

DeepSeek-v1到DeepSeek-v3再到DeepSeek-R1的变迁和进化史,创新点,值得大家学习,DeepSeek系列干货

DeepSeek-v1 1.高质量的数据构建&#xff1a;2T tokens中英文数据集&#xff08;数据去重、过滤和重混&#xff09;&#xff1b; 2. 模型架构参考LlaMa&#xff1b; 3.数据并行、张量并行、超参数设置等&#xff1a; 衍生&#xff1a;DeepSeek-Coder、deepseek MoE、DeepSe…...

基于多层感知机(MLP)实现MNIST手写体识别

实现步骤 下载数据集处理好数据集确定好模型&#xff08;初始化模型参数等等&#xff09;确定优化函数&#xff08;损失函数也称为目标函数&#xff09;和优化方法&#xff08;一般选用随机梯度下降 SDG &#xff09;进行模型的训练进行模型的评估 import torch import torch…...

windows下安装pyenv+virtualenv+virtualenvwrapper

1、下载pyenv 进入git官网&#xff0c;打包下载zip到本地 2、解压到安装目录 解压下载好的pyenv-win-master.zip到自己的安装目录&#xff0c;如D:\Program Files 3、配置环境变量 右击桌面 此电脑 --> 属性 --> 高端系统设置 --> 环境变量 --> 新建系统变量…...

C# 确保程序只有一个实例运行

常规需求 C#程序只能运行一次,不能多开: using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using System.Threading; using System.Runtime.InteropServices; using System.Security.Principal; namespace BallLocation {sta…...

MySQL 的存储引擎有哪些?它们之间有什么区别?

MySQL 支持多种存储引擎&#xff0c;每种存储引擎都有其独特的特性和适用场景。以下是 MySQL 中常见的存储引擎及其主要区别&#xff1a; 1.常见存储引擎及其特点 (1)InnoDB • 事务支持&#xff1a;支持完整的 ACID 特性&#xff0c;适用于需要事务处理的场景。 • 锁机制&…...

大语言模型的评测

大语言模型评测是评估这些模型在各种任务和场景下的性能和能力的过程。 能力 1. 基准测试&#xff08;Benchmarking&#xff09; GLUE&#xff08;General Language Understanding Evaluation&#xff09;&#xff1a;包含多个自然语言处理任务&#xff0c;如文本分类、情感分…...

《从零到全栈:Vue2入门宝典》

1. Vue 简介 1.1 什么是 Vue&#xff1f; Vue 是一套用于构建用户界面的渐进式框架。Vue 的核心库专注于视图层&#xff0c;易于与其他库或现有项目集成。Vue 的目标是通过尽可能简单的 API 实现数据双向绑定和组件化开发。 1.2 什么是“渐进式”&#xff1f; “渐进式”意味…...

next.js-学习3

next.js-学习3 6. 设置数据库1. 传代码到github https://github.com/2. github和Vercel链接&#xff0c;用Vercel预览和部署3. 创建数据库4. 初始化数据库 7.读取数据1. 在/app/lib/data.ts中这两行是连接postgres的2. 在/app/dashboard/page.tsx中使用3.在/app/dashboard/page…...

Hadoop第2课(伪分布式集群的搭建)

jdk和hadoop安装包&#xff1a; hadoop-2.9.2.t......等2个文件官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘 1、用XFTP发送hadoop安装包和jdk到/home/hadoop/目录下&#xff08;hadoop用户的主目录&#xff09; 2、解压jdk安装包到~目录 卸载jdk的命令&#xff1a;r…...

Linux——进程池

前言&#xff1a;大佬写博客给别人看&#xff0c;菜鸟写博客给自己看&#xff0c;我是菜鸟。 1.实现思路 思路&#xff1a;通过创建匿名管道&#xff0c;来实现父子进程之间的通信 注1&#xff1a;父写&#xff0c;子读 注2&#xff1a;匿名管道只能用来进行具有血管关系的进程…...

JavaScript 简单类型与复杂类型-简单类型的内存分配

深入理解JavaScript中的简单类型&#xff08;基本数据类型&#xff09;和复杂类型&#xff08;引用数据类型&#xff09;如何在内存中存储对于编写高效、无误的代码至关重要。本文将专注于探讨简单类型的内存分配机制&#xff0c;即栈&#xff08;Stack&#xff09;内存&#x…...

深度生成模型(一)——具身智能综述与算法分类简介

具身智能对于机器人的控制可以分为端到端模型和非端到端模型&#xff1a; 端到端模型&#xff1a;具身模型&#xff08;如 ACT 和 DP&#xff09;将视觉感知&#xff08;Vision&#xff09;与动作生成&#xff08;Action&#xff09;整合为单一神经网络&#xff0c;直接实现从…...

Vue 中,使用模板(Template) 和 Render 函数编写组件的区别

在 Vue 2 中&#xff0c;模板&#xff08;Template&#xff09; 和 Render 函数 是两种不同的组件编写方式&#xff0c;它们各有特点和适用场景。以下是它们的核心区别和实际应用场景分析&#xff1a; 1. 基本区别 特性模板&#xff08;Template&#xff09;Render 函数语法形…...