[SpringBoot+MyBatis] MapperScan注解

在SpringBoot中集成MyBatis,可以在mapper接口上添加@Mapper注解,将mapper注入到Spring,但是如果每一给mapper都添加@mapper注解会很麻烦,这时可以使用@MapperScan注解来扫描包。

mapper接口开发

面向接口编程的思想很重要,所以想先介绍这个部分。
如一个实体类:

public class Person {
	private int pid;
	private String pname;
	private int age;
	private String address;
}

Mapper接口:


import java.util.List;
 
public interface PersonMapper {
	public List<Person> getPersonList();

MyBatis配置XML文件:
环境配置,链接数据库:

	<mappers>
<!-- 	<mapper class="com.asong.mybatis.pojo.PersonMapper"/> -->
		<mapper resource="com/asong/mybatis/pojo/PersonMapper.xml"/>
	</mappers>

mapper.xml配置:

<mapper namespace="com.asong.mybatis.pojo.PersonMapper">
	<select id="getPersonList" resultMap="Person" >
		select * from t_person
	</select>
</mapper>

测试代码:

	@Test
	public void getPersonListTest(){
		PersonMapper personMapper = session.getMapper(PersonMapper.class);
		List<Person> personList = personMapper.getPersonList();
		for (Person person : personList) {
			System.out.println(person);
		}
	}

上面的方式使用的是xml配置方式,也可以使用注解的方式,即在每个Mapper类上添加上注解@Mapper即可。

MapperScan

通过在每个Mapper类上添加注解@Mapper,这种方式要求每一个mapper类都需要添加此注解,十分麻烦,因此可以使用MapperScan可以指定要扫描的Mapper类的包的路径,使用例子:

/**
 * MyBatis配置类
 * Created by asong on 2019/12/21.
 */

@Configuration
@MapperScan({"com.asong.shop.tiny.mbg.mapper","com.asong.shop.tiny.dao"})
public class MyBatisConfig {
}

@MapperScan注解只会扫描包中的接口,不会扫描类
使用方法:

@MapperScan("com.demo.mapper")//扫描指定包中的接口
@MapperScan("com.demo.*.mapper")//一个*代表任意字符串,但只代表一级包,比如可以扫到com.demo.aaa.mapper,不能扫到com.demo.aaa.bbb.mapper
@MapperScan("com.demo.**.mapper")//两个*代表任意个包,比如可以扫到com.demo.aaa.mapper,也可以扫到com.demo.aaa.bbb.mapper
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值