如何使用mybatis注解中的@Mapper和@MapperScan

这篇文章主要介绍“如何使用mybatis注解中的@Mapper和@MapperScan”,在日常操作中,相信很多人在如何使用mybatis注解中的@Mapper和@MapperScan问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用mybatis注解中的@Mapper和@MapperScan”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

目录
  • mybatis注解之@Mapper和@MapperScan

    • 方式一:使用@Mapper注解

    • 方式二:使用@MapperScan注解

  • @MapperScan和@Mapper区别及理解

    • 作用

    • 扫描一个包

    • 扫描多个包

mybatis注解之@Mapper和@MapperScan

在使用Mybatis持久层框架来操作数据库时,我们可以使用@Mapper注解和@MapperScan注解来将Mapper接口类交给Sprinig进行管理。

方式一:使用@Mapper注解

优点:粒度更细

缺点:直接在Mapper接口类中加@Mapper注解,需要在每一个mapper接口类中都需要添加@Mapper注解,较为繁琐

方式二:使用@MapperScan注解

通过@MapperScan可以指定要扫描的Mapper接口类的包路径

@SpringBootApplication  
@MapperScan("com.erayt.mapper")  
public class App {  
    public static void main(String[] args) {  
       SpringApplication.run(App.class, args);  
    }  
}

在路径中可以使用 * 作为通配符对包名进行匹配

@SpringBootApplication  
@MapperScan("com.erayt.*.mapper")  
public class App {  
    public static void main(String[] args) {  
       SpringApplication.run(App.class, args);  
    }  
}

也可以使用@MapperScan注解对多个包进行扫描

@SpringBootApplication  
@MapperScan("com.erayt.mapperFirst","com.erayt.mapperSecond")  
public class App {  
    public static void main(String[] args) {  
       SpringApplication.run(App.class, args);  
    }  
}

@MapperScan和@Mapper区别及理解

作用

扫描项目中的Dao层,将dao接口类注入到Spring,能够让其他类进行引用;

  • @Mapper:在dao接口类中,添加此注解;麻烦的在于,每个dao接口类都必须添加此注解;

  • @MapperScan:可以指定要扫描的dao接口类的路径,可以在启动类中添加此注解,可替代@Mapper注解(此模块内dao接口类不用都添加@Mapper注解)

扫描一个包

  • @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

扫描多个包

如果dao接口类在主程序可以扫描的包或者子包下面:

@MapperScan({"com.kfit.demo","com.kfit.user"})

如果没有,可以使用如下方式进行配置:

@MapperScan({"com.kfit.*.mapper","org.kfit.*.mapper"})

到此,关于“如何使用mybatis注解中的@Mapper和@MapperScan”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!