@Mapper 与 @MapperScan 的区别[通俗易懂]

@Mapper 与 @MapperScan 的区别[通俗易懂]文章目录1、@Mapper注解2、@MapperScan2.1、@MapperScan扫描多个包2.2、@MapperScan使用表达式,来扫描的包和其子包下面的类3、总结:1、@Mapper注解作用:用在接口类上,在编译之后会生成相应的接口实现类位置:对应的某个接口类上面@MapperpublicinterfaceEmployeeMapper{publicEm…

大家好,又见面了,我是你们的朋友全栈君。

1、@Mapper

作用:用在接口类上,在编译之后会生成相应的接口实现类
位置:对应的某个接口类上面

@Mapper
package com.aop8.demo.mapper;

public interface EmployeeMapper { 
   
    public Employee getEmpById(Integer id);
    public void insertEmp(Employee employee);
}

如果每个接口类 都要 @Mapper 注解,是重复而无聊的工作,解决这个问题用 @MapperScan

2、@MapperScan

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

接口类

package com.aop8.demo.mapper;

public interface EmployeeMapper { 
   
    public Employee getEmpById(Integer id);
    public void insertEmp(Employee employee);
}

EmployeeMapper.xml 省略…
mybatis 相关的全局配置 省略…

SpringBootApplication 启动类

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

SpringBootApplication 上添加 @MapperScan("com.aop8.demo.mapper") 注解,会扫描 com.aop8.demo.mapper 包下面所有的接口类,在编译之后都会生成相应的实现类。

2.1、@MapperScan 支持扫描多个包

@MapperScan 也支持多个包的扫描。

@MapperScan({ 
   "com.aop8.emp.mapper","com.aop8.dep.mapper"})
@SpringBootApplication
public class SpringBootApplication { 
   

	public static void main(String[] args) { 
   
		SpringApplication.run(SpringBootApplication.class, args);
	}
}

2.2、 @MapperScan 支持表达式,扫描包和其子包中的类

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

3、总结:

@Mapper 是对单个接口类的注解。单个操作。

@MapperScan 是对整个包下的所有的接口类的注解。是批量的操作。使用 @MapperScan 后,接口类 就不需要使用 @Mapper 注解。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134362.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 软硬件版本号命名规范及原则是什么_文件版本号怎么编

    软硬件版本号命名规范及原则是什么_文件版本号怎么编1.软件版本阶段说明 Alpha版:此版本表示该软件在此阶段主要是以实现软件功能为主,通常只在软件开发者内部交流,一般而言,该版本软件的Bug较多,需要继续修改。 Beta版:该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过多次测试来进一步消除,此版本主要的修改对像是软件的UI。 RC版:该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几。 Release版:该版本意味“最终版本”,在前面版本的一系列

    2022年9月10日
    1
  • nginx路径匹配_url路径匹配

    nginx路径匹配_url路径匹配一、前言一般我们经常在访问网站时,通常会遇到输入某个页面的网址时,出现路由的转发,重定向等。可能访问的是一个网址,出来的时候就显示的是另外的地址。这种情况下,通常属于nginx的页面跳转。二、Nginx可提供的服务类型nginx做请求代理,提供多种服务1、php搭建的网站2、hexo创建的博客系统3、spring-boot&tomcat搭建的后台4、静态网页三、location匹配规则1、语法location可以把不同方式的请求,定位到不同的处理方式上.location

    2022年10月18日
    2
  • 关于google的历史纪录和书签

    关于google的历史纪录和书签

    2021年9月8日
    65
  • UML图中类之间的关系:依赖,关联,聚合,组合,泛化,实现

    UML图中类之间的关系:依赖,关联,聚合,组合,泛化,实现类与类图1)类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。2)在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务。一个类可以有多种职责,设计得好的类一般只有一种职责,在定义类的时候,将类的职责分解成为类的属性和操作(即方法)。3)类的属性即类的数据职责,类的操作即类的行……

    2022年7月17日
    8
  • 关闭单节点oracle,oracle rac 如何正确的删除单个节点的actionlist[通俗易懂]

    关闭单节点oracle,oracle rac 如何正确的删除单个节点的actionlist[通俗易懂]1节点2使用dbca删除一个节点2节点1alterdatabasedisablethread2;3节点1验证是否已经删除一个节点数据库[03:49:06oracle(db)@rac1~]$srvctlconfigdatabase-dprodDatabaseuniquename:prodDatabasename:prodOraclehome:/u01/app/or…

    2022年10月19日
    2
  • 关于web.xml配置中的<url-pattern>

    关于web.xml配置中的<url-pattern>标签<url-pattern><url-pattern>是我们用Servlet做Web项目时需要经常配置的标签,例:<servlet><servlet-n

    2022年7月3日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号