mapper命名规范_这下够清楚了吧!详解Mybatis的Mapper映射文件

本文详细介绍了Mybatis的Mapper映射文件,包括mapper的九大顶级元素:select、insert、update、delete、sql、cache、cache-ref、sql语句块、parameterMap和resultMap。强调了namespace作为命名空间的重要性,以及select查询的使用,包括parameterType和resultType的配置。此外,文章还讨论了缓存机制、参数映射的弃用以及insert、update、delete的简单应用。
摘要由CSDN通过智能技术生成

前言

上节我们介绍了 《 Mybatis系列全解(四):全网最全!Mybatis配置文件 XML 全貌详解 》,内容很详细( 也很枯燥),由于篇幅实在过于冗长,我预计大家想看完得花上两段上班地铁公交车的时间 。。。

dd9fd79a0c5e225cde4148d8f6581a0b.png

不过应该有让大家了解到 Mybatis 的核心配置文件 config.xml 全貌,其中的 元素即是我们本节准备登场介绍的 SQL 映射器,上节有介绍了三种引入 SQL 映射器的方式,本节我们就主要聊聊它的几个顶级元素用法。

Mybatis 真正强大就在于它的语句映射,这是它的魔力所在,也是基石。由于它异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码( 95% 是Mybatis 官网的说法 ,我也就引入一下 ),MyBatis 致力于减少使用成本,让用户能更专注于 SQL 代码。

一、mapper 映射器顶级元素全貌

与其它 ORM 框架如 Hibernate 不同,Mybatis 的框架思想希望开发者能够直接操作数据库编写 SQL,而不是隐藏起来,让开发者独自面对 Java 对象,为此 Mybatis 设计了 SQL 映射器,任你五招十二式。

ad3664242c4ac4b63fc7f589247d03c1.png

映射器有九大顶级元素 ,基本技能介绍

  • select : 用于查询,支持传参,返回指定结果集;
  • insert : 用于新增,支持传参,返回指定结果集;
  • update : 用于更新,支持传参,返回指定结果集;
  • delete : 用于删除,支持传参,返回指定结果集;
  • sql : 被其它语句引用的 可复用 语句块;
  • cache : 当前命名空间缓存配置;
  • cache-ref : 引用其它命名空间的缓存配置;
  • parameterMap : 参数映射,已弃用,是它不够好;
  • resultMap : 结果集映射,它就很好;

其中,增删改查操作拼接 SQL 时使用到的 动态SQL( if、where、foreach啥的),以及封装结果集时使用到的 复杂映射 (1对1 ,1对多,多对多啥的),这两部分我们后面单立文章再详细介绍,本文中我们简单点过。

九大顶级元素 ,功能归类:

其中顶一元素 parameterMap 已建议弃用了 。

e5b64882a8368d9b09eddee0a548c8f3.png

无论你有多么复杂的 SQL 操作,最根本的思路都逃不出以上 4 部分。

二、namespace 命名空间

一个完整的 Mapper 映射文件,需要有约束头 xml 与 !DOCTYPE ,其次才是 mapper 根元素,最后再是顶级元素,而其中,namespace 属性作为 mapper 的唯一标识,试回忆:

  • 上学时,6年级一班23号,能代表唯一的你。
  • 编写 Java 类时,包名 + 类名,能代表唯一的类。
  • 而如今,我们在 Mybatis 中写的每一段 SQL 语句,同样有唯一的代表方式,那就是「 命名空间标识 + 语句id 」,无论是为了区分业务也好,还是为了拆分服务也好,反正 Mybatis 让每一个 mapper.xml 配备一个唯一命名空间标识。
c9263fe5ff03cf60d9a2b4a652c1f8de.png

每一段 SQL 语句都是唯一定义的,我们在 Mybatis 中用「 命名空间标识 + 语句块 ID 」作为唯一的标识,组合之后在 Mybatis 二级缓存中可以作为本地 map 集合 缓存 的唯一Key ,也可以用于 Dao 接口的 映射 绑定,还能作为唯一 代理 标识。总之,我们希望避免命名冲突和重复定义,所以,拥有这么一个唯一标识 ,它就至少有一亿个利好。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值