老司机学习MyBatis之mappers如何配置映射注册

本文介绍了MyBatis中配置SQL映射语句的四种方式:相对路径方式、全路径方式、Class方式以及批量注册方式,并详细解释了每种方式的具体配置方法。

一、前言

定义SQL映射语句,首先我们要告诉MyBatis去哪里找到这些语句,Java在自动查找这方面没有提供一个很好的方法,所以最佳方式是告诉MyBatis到哪里去查找映射文件,你可以使用相对路径的资源引用或者完全限定资源定位符或者类名或者包名。

二、案例

配置方式有四种:

  • 相对路径方式 ;
  • 全路径方式 ;
  • 使用class方式;
  • 批量注册

下面分别介绍这四种方式如何配置的?

①相对路径方式

<mapper resource="UserMapper.xml" />

resource方式引用类路径下面的sql映射文件

全路径方式

<mappers>
	<!-- <mapper resource="UserMapper.xml" /> -->
	<mapper url="file:///C:/Users/think/Desktop/UserMapper.xml"/>
</mappers>

url方式引用网络路径或者磁盘路径下面的SQL映射文件

③class方式,引用(注册)接口

这种方式有两种情况:
一种是有sql映射文件,映射文件必须与接口同名,并且和接口放在同一目录下面

二种是没有sql映射文件,所有的sql都是利用注解写在接口上,基于注解的方式

下面我们介绍第一种方式:

修改mybatis-config.xml核心配置文件

<mappers>
	<!-- <mapper resource="UserMapper.xml" /> -->
	<!-- <mapper url="file:///C:/Users/think/Desktop/UserMapper.xml"/> -->
	<mapper class="com.queen.mybatis.mapper.UserMapper"/>
</mappers>

将UserMapper.xml文件拷贝到com.queen.mybatis.mapper路径下面


我们使用这种方式,就必须让UserMapper.xml与UserMapper.java在同一目录下而且文件名要一样这样才能让MyBatis认为我们的实现文件就是UserMapper.xml

接着我们介绍第二种方式

定义一个接口,在方法上写上SQL语句

public interface UserMapper {
	@Select("select id, loginId, userName, role, note from t_user where id = #{id}")
	public User findUserById(int id);
}

修改mybatis-config.xml文件

<mappers>
	<!-- <mapper resource="UserMapper.xml" /> -->
	<!-- <mapper url="file:///C:/Users/think/Desktop/UserMapper.xml"/> -->
	<!-- <mapper class="com.queen.mybatis.mapper.UserMapper"/> -->
	<mapper class="com.queen.mybatis.mapper.UserMapper"/>
</mappers>

④批量注册

批量注册比较简单,但是也要注意就是有映射文件的这种一定要与之对应的接口java文件放在同一目录下面,否则会报错

<mappers>
	<!-- <mapper resource="UserMapper.xml" /> -->
	<!-- <mapper url="file:///C:/Users/think/Desktop/UserMapper.xml"/> -->
	<!-- <mapper class="com.queen.mybatis.mapper.UserMapper"/> -->
	<!-- <mapper class="com.queen.mybatis.mapper.UserMapperAnnotation"/> -->
	<package name="com.queen.mybatis.mapper"/>
</mappers>


=======欢迎大家拍砖,小手一抖,多多点赞哟!=======

版权声明:本文为博主原创文章,允许转载,但转载必须标明出处。



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值