首页 > 其他分享 >mybatis注解之@Mapper和@MapperScan的使用

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

时间:2022-09-19 00:12:04浏览次数:276  
标签:Mapper mapper 接口类 MapperScan mybatis 注解 com

+

目录

mybatis注解之@Mapper和@MapperScan

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

方式一:使用@Mapper注解

优点:粒度更细

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

方式二:使用@MapperScan注解

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

?
1 2 3 4 5 6 7 @SpringBootApplication  @MapperScan("com.erayt.mapper" public class App {      public static void main(String[] args) {         SpringApplication.run(App.class, args);       }
 

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

?
1 2 3 4 5 6 7 @SpringBootApplication  @MapperScan("com.erayt.*.mapper" public class App {      public static void main(String[] args) {         SpringApplication.run(App.class, args);       }
 

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

?
1 2 3 4 5 6 7 @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接口类在主程序可以扫描的包或者子包下面:

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

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

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章: 来源:https://www.jb51.net/article/224817.htm

标签:Mapper,mapper,接口类,MapperScan,mybatis,注解,com
From: https://www.cnblogs.com/konglxblog/p/16706329.html

相关文章

  • SpringBoot集成Mybatis 实现InsertOrUpdate功能
    需求场景在项目开发过程中,难免会遇到这样的场景:对一张表,当数据不存在的时候,进行insert插入操作;数据存在的时候,进行update更新操作;下面就来使用Mybatis的InsertOrUpdate功......
  • java框架——MyBatis
    MyBatis什么是MyBatis?MyBaits是一款优秀的持久层框架,用于简化JDBC开发MyBaits本事Apached的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到......
  • SSM框架之Mybatis基本概念及使用方法
    SSMSpingMVC+Spring+Mybatis SpringMVC充当Servlet可以理解为SpringMVC是Spring的WEB支持Mybatis充当Dao层Sping充当一个润滑油的角色 MybatisPlus国内......
  • MyBatis标签之Select resultType和resultMap
    摘要:介绍MyBatis中Select标签的两个属性resultType和resultMap及其区别。1MyBatis动态SQL之if语句2MyBatis动态sql之where标签|转3MyBatis动态SQL之set标签|转4M......
  • MyBatis配置文件开启驼峰命名
    mybatis-config.xml文件中配置开启<settings><!--配置:开启二级缓存--><!--<settingname="cacheEnabled"value="true"/>--><settingnam......
  • MyBatis(二六):缓存——缓存原理
    首先来思考一下,在开启了二级缓存的情况下,一个用户查询数据经历的过程是什么样的。我们看一下,下面这张图: 用户先去二级缓存中去寻找数据,如果找不到再去一级缓存寻找数......
  • MyBatis(二五):缓存——二级缓存
    上一篇我们学习了一级缓存,这次我们来学习二级缓存。一、什么是二级缓存二级缓存也叫全局缓存,是namespace级别的缓存,每一个命名空间对应一个二级缓存。二、二级缓存的工......
  • MyBatis
    MyBatis持久层开发MyBatis配置文件<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://myb......
  • MyBatis-Plus插入值后返回主键
    LZ做练手设计的时候有这样一个订单需求,先插入订单表数据(t_order),再写入订单详情表(t_orderDetail),详情表需要有一个与t_order的外键约束t_order(oid   auto_in......
  • Mybatist-plus在开发过程中遇到的问题和解决办法
    1,总是老忘记一些LambdaQueryWrapper常用的表达式   2,minmaxsum等聚合函数的查询方法QueryWrapper<ParagonPrintLog>queryWrapper=newQueryWrappe......