实现数据操作解耦和简化开发
一、 概述
MyBatis 没有要求开发者手动编写 Mapper 接口的实现类,通过动态代理技术 在运行时自动生成接口的实现类对象,整体目的是建立 "接口方法" 与 "对应的 SQL 语句" 之间的一一对应关系
,「XML 映射文件中 SQL 标签的id与 Mapper 接口方法名一致」,正是这一机制能够正常工作的关键条件之一
二、 三大核心要求
-
==SQL 标签
id↔ 接口方法名==映射文件中
<select>、<insert>、<update>、<delete>等 SQL 标签的id属性,必须与 Mapper 接口中的方法名完全一致(大小写敏感、拼写无误差),MyBatis 通过该对应关系,确定哪个接口方法对应哪个 SQL 语句 -
映射文件
namespace↔ 接口全类名映射文件根节点
<mapper>的namespace属性,必须与对应的 Mapper 接口的全类名(包名 + 接口名)完全一致作用:MyBatis 通过
namespace找到对应的 Mapper 接口,避免不同接口中方法名重复导致的冲突 -
方法参数 / 返回值 ↔ SQL 标签参数 / 结果配置
- 接口方法的参数类型 ,需与 SQL 标签的
parameterType(MyBatis 3.4 + 可自动推断,可选配置)对应匹配 - 接口方法的返回值类型 ,需与 SQL 标签的
resultType(简单结果类型)或resultMap(复杂 / 自定义结果映射)对应匹配
- 接口方法的参数类型 ,需与 SQL 标签的
三、 核心价值
- 简化开发:无需手动编写 Mapper 接口的实现类,减少冗余代码
- 解耦 SQL 与 Java 代码:SQL 语句集中在 XML 映射文件中管理,便于后续优化、修改和维护,避免 SQL 硬编码在 Java 方法中
- 提高可扩展性:MyBatis 通过该绑定机制,支持结果映射、动态 SQL 等高级功能,满足复杂业务场景需求
总结
- 核心知识点:MyBatis Mapper 接口与 XML 映射文件的绑定机制(动态代理实现)
- 关键条件:
namespace对应接口全类名、id对应接口方法名、参数 / 返回值对应 SQL 标签配置 - 核心价值:简化开发、解耦 SQL 与 Java 代码、提升可维护性