实现数据库基本操作,也是映射文件的核心组成部分
一、 概述
MyBatis 为了实现数据库的 CRUD(Create:新增、Read:查询、Update:修改、Delete:删除)操作,在 XML 映射文件中提供了四个专用的核心标签 ,分别与数据库的四种基本操作一一对应,用于封装对应的 SQL 语句,实现 "Java 接口方法" 与 "数据库操作 SQL" 的绑定,这是 MyBatis 操作数据库的基础入口
这四个标签各司其职,均不能混用,MyBatis 会根据标签类型解析对应的 SQL 语句并执行对应的数据库操作,其中<select>是唯一有查询返回结果的标签,<insert>、<update>、<delete>均为数据修改类标签,仅返回受影响的数据库行数
二、 四大核心 CRUD 标签详细解析(本题考点 + 补充完整知识点)
<select>:查询(Read)操作标签
-
核心作用 :专门用于封装数据库 SELECT 查询语句,负责从数据库中读取数据,不修改数据库中的任何数据(只读操作)
-
核心特性:
- 唯一具备返回结果的 CRUD 标签,必须通过
resultType或resultMap配置返回结果类型,否则无法完成结果封装 - 支持多参数传递、动态 SQL、分页查询等高级功能,适配简单查询到复杂关联查询的各类场景
- 默认配置
flushCache="false",执行后不会刷新缓存,会优先从缓存中获取数据(提升查询效率)
- 唯一具备返回结果的 CRUD 标签,必须通过
-
核心使用场景:查询单条记录、查询多条记录、统计数据总数、多表关联查询等所有无需修改数据的场景
<insert>:新增(Create)操作标签
-
核心作用 :专门用于封装数据库 INSERT 插入语句,负责向数据库表中新增一条或多条记录(数据新增操作)
-
核心特性:
- 无查询返回结果,执行后仅返回受影响的行数(int 类型)
- 支持特殊功能:可通过
useGeneratedKeys(是否获取自增主键)、keyProperty(将自增主键赋值到实体类的某个属性)配置,获取插入数据后的自增主键(如 MySQL 表的自增 ID),这是开发中的常用需求 - 默认配置
flushCache="true",执行后会刷新 MyBatis 的一级缓存和二级缓存,避免缓存数据与数据库实际数据不一致
-
核心使用场景:向单表插入一条记录、批量插入多条记录(可配合动态 SQL 实现)等数据新增场景
<update>:修改(Update)操作标签
-
核心作用 :专门用于封装数据库 UPDATE 更新语句,负责修改数据库表中已存在的记录
-
核心特性:
- 数据修改类标签,仅返回受影响的行数,无需配置结果类型
- 默认
flushCache="true",执行后刷新缓存 - 支持动态 SQL,可实现 "按需更新"(仅修改传入非空的字段),提升开发灵活性
-
核心使用场景:更新单条记录的部分字段、批量更新多条记录等数据修改场景
4. <delete>:删除(Delete)操作标签
-
核心作用:
- 专门用于封装数据库 DELETE 删除语句,负责删除数据库表中的记录
-
核心特性:
- 数据修改类标签,仅返回受影响的行数,无需配置结果类型
- 默认
flushCache="true",执行后刷新缓存 - 支持单条记录删除、批量记录删除(配合动态 SQL),需谨慎使用(避免无条件删除全表数据)
-
核心使用场景:删除单条记录、批量删除符合条件的记录、逻辑删除(更新状态字段,非物理删除)等场景
三、核心规则
- 标签与 SQL 语句一一对应 :每个标签内只能编写对应类型的 SQL 语句(如
<select>内只能写 SELECT 语句),不可混用,否则 MyBatis 解析时会抛出异常 - 必须配置
id属性 :所有 CRUD 标签的id属性必须与对应的 Mapper 接口方法名完全一致,这是实现接口与 SQL 绑定的核心条件 - 支持可选的
parameterType属性:用于指定传入参数的类型,MyBatis 3.4 + 可自动推断,无需手动配置,适配基本数据类型、实体类、Map 等多种参数类型 - 语法遵循 XML 标准 :标签必须正确闭合、属性值必须用引号包裹,SQL 语句中的特殊字符(如
<、>)需做转义或包裹在<![CDATA[ ]]>中
四、核心价值
- 标准化数据库操作:将数据库的四种基本操作封装为专用标签,规范了 SQL 的编写和管理,提升了代码的可读性和可维护性
- 简化数据操作开发:无需手动编写 JDBC 的
PreparedStatement、ResultSet等冗余代码,通过标签配置即可实现数据库操作,降低开发门槛 - 支撑高级功能扩展:四大标签均支持 MyBatis 的动态 SQL、缓存、结果映射等高级功能,为复杂业务场景提供了支撑
总结
- 核心知识点:MyBatis 映射文件四大核心 CRUD 操作标签(
<select>、<insert>、<update>、<delete>) - 本题考点:
<select>(查询)、<insert>(新增)的核心作用 - 关键规则:标签与 SQL 一一对应、
id对应接口方法名、数据修改类标签默认刷新缓存 - 核心价值:标准化、简化数据库操作,支撑复杂业务扩展