mybatis注解之@Mapper和@MapperScan的使用

文章介绍了在Mybatis中,@Mapper和@MapperScan注解的使用方法和区别。@Mapper用于单个Mapper接口,而@MapperScan则可以批量扫描指定包下的Mapper接口,简化配置。通配符*可用于包名匹配,**表示任意级包。
摘要由CSDN通过智能技术生成

mybatis注解之@Mapper和@MapperScan


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


方式一:使用@Mapper注解
优点:粒度更细

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


方式二:使用@MapperScan注解
通过@MapperScan可以指定要扫描的Mapper接口类的包路径
 

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

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

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

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

@SpringBootApplication 
@MapperScan ( "com.czxy.mapperFirst" , "com.czxy.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.czxy.demo" , "com.czxy.user" })

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

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

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值