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

这是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)相同,还必须在同一个包中

<!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
	<package name="com.tiangang.dao.mapper"/>
</mappers>

第2种. resource方式

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

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

<!-- 使用相对于类路径的资源引用 -->
<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

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

第4种. class方式

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

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

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

源码求证

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天罡gg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值