前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mybatis由浅入深 - 05详解mappers配置的4种方式

Mybatis由浅入深 - 05详解mappers配置的4种方式

作者头像
天罡gg
发布2022-12-02 15:23:06
3520
发布2022-12-02 15:23:06
举报
文章被收录于专栏:天罡gg

这是Mybatis由浅入深的第5节,前四节传送门:

【Mybatis由浅入深 -01入门】

【Mybatis由浅入深 - 02增删改查CRUD】

【Mybatis由浅入深 - 03动态SQL】

【Mybatis由浅入深 - 04结果映射】

前言

在之前的章节里, 我们接连定义了3个mapper接口和映射文件xml, 但一直没有提Mybatis是如何知道我们定义的, 按照Mybatis的灵活性来说, 这里路径肯定不是固定的。

那么Mybatis是怎么知道我们写的mapper接口和映射文件xml在哪里呢?

其实Mybatis并没有使用什么特别的技术, 只是在全局配置文件config里通过mappers元素指定的, 如果仔细想想, 换作你来开发, 方式无外乎使用包(package)路径,xml(resource)路径,类(class)路径等这几种方式.

下面我们先来看看Mybatis是如何配置的, 再结合源码来看看Mybatis是如何实现的.

第1种. package方式

package元素, 通过name指定包路径,优先级第1(最高)

必须保证接口名(例如UserMapper)和xml名(UserMapper.xml)相同,还必须在同一个包中

代码语言:javascript
复制
<!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
	<package name="com.tiangang.dao.mapper"/>
</mappers>

第2种. resource方式

mapper元素, 通过resource指定classpath路径的相对资源, 优先级第2

不用保证同接口同包同名 (这也是前几节里使用的方式).

代码语言:javascript
复制
<!-- 使用相对于类路径的资源引用 -->
<mappers>
	<mapper resource="com/tiangang/dao/mapper/UserMapper.xml"/>
	<mapper resource="com/tiangang/dao/mapper/UserDynamicSqlMapper.xml"/>
	<mapper resource="com/tiangang/dao/mapper/AccountMapper.xml"/>
</mappers>

第3种. url方式

mapper元素, 通过url指定网络资源或者本地磁盘资源, 优先级第3

不推荐, 了解即可, 格式file:///var/mappers/AuthorMapper.xml

代码语言:javascript
复制
<!-- 使用完全限定资源定位符(URL) -->
<mappers>
	<mapper url="file:E:/mappers/AccountMapper.xml"/>
</mappers>

第4种. class方式

mapper元素, 通过class指定接口路径, 优先级第4(最低)

必须保证接口名(例如UserMapper)和xml名(UserMapper.xml)相同,还必须在同一个包中

代码语言:javascript
复制
<!-- 使用映射器接口实现类的完全限定类名 -->
<mappers>
	<mapper class="com.tiangang.dao.mapper.UserMapper"/>
	<mapper class="com.tiangang.dao.mapper.UserDynamicSqlMapper"/>
	<mapper class="com.tiangang.dao.mapper.AccountMapper"/>
</mappers>

源码求证

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 第1种. package方式
  • 第2种. resource方式
  • 第3种. url方式
  • 第4种. class方式
  • 源码求证
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档