【Java】@MapperScan的作用

@Mapper注解的使用

作用:在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类。添加位置:接口类上面,代码如下所示:

@Mapper
public interface StudentMapper {
   //todo
}

@MapperScan注解的使用

作用:指定要变成实现类的接口所在的包,包下面的所有接口在编译之后都会生成相应的实现类。添加位置:是在Springboot启动类上面添加。

@SpringBootApplication
@MapperScan("cn.mybatis.mappers")
public class SpringbootMybatisDemoApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(SpringbootMybatisDemoApplication.class, args);
    }
}

区别:

添加@MapperScan(“cn.mybatis.mappers”)注解以后,cn.mybatis.mappers包下面所有的接口类,在编译之后都会生成相应的实现类

在不使用@MapperScan前,我们需要直接在Mapper类上面添加注解@Mapper,这种方式要求每一个Mapper类都需要添加此注解,非常麻烦,属于重复劳动。通过使用@MapperScan注解,可以让我们不用为每个Mapper类都添加@Mapper注解。

添加依赖项:

1 <!-- MyBatis -->
2 <dependency>
3     <groupId>org.mybatis.spring.boot</groupId>
4     <artifactId>mybatis-spring-boot-starter</artifactId>
5     <version>2.1.4</version> <!-- 请使用最新版本 -->
6 </dependency>

如果使用多个包,可以用逗号分开引用多个包。

@MapperScan({"com.example.project.mapper", "com.example.other.mapper"})

 

posted @ 2023-09-12 21:59  陆陆无为而治者  阅读(984)  评论(0)    收藏  举报