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"})

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

(0)

相关推荐

  • MyBatis中Mapper的注入问题详解

    在 SpringBoot 体系中,MyBatis 对 Mapper 的注入常见的方式我知道的有 2 种: 1.@MapperScan MapperScan 类是 mybatis-spring 包里面的. 通过在启动类上使用 @MapperScan,然后通过 basePackages 属性指定 Mapper 文件所在的目录来进行扫描装载,默认情况下指定目录下的所有.java文件都会被当做 Mapper 来加载处理. @MapperScan(basePackages = "com.test.spri

  • 解决SpringBoot整合Mybatis扫描不到Mapper的问题

    闲来无事,想学学springboot,开始搭建一个项目,但是一直显示mapper扫描不到的错误: "Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController': Unsa

  • 浅谈@mapper引入不到引入的是@MapperScan的问题

    两种防水都可以,但是使用方式不同. @mapper需要mybatis和mybatis-spring的版本足够的高才可以. 不然导入不到@mapper. 补充知识:关于MyBatis的@Mapper和@MapperScan注解的一点思考 最近有空回顾mybatis,想起@Mapper注解一直没弄明白是干嘛的,代码上的注释写的很简单(Marker interface for MyBatis mappers),开发过程中也没用到,但网上各种资料偶有出现他的身影.问了度娘,都没讲清楚,我决定自己思考下这

  • Mybatis常见注解有哪些(总结)

    当下,注解非常流行,以前很长篇的代码,现在基本上一个注解就能搞定. 那,在Mybatis中又有哪些注解呢? Mybatis中的注解基本上都在org.apache.ibatis.annotations目录下: @MapperScan 该注解存在着争议,但不可否认的是这个注解确实是Mybatis的注解,是为了集成Spring而写的注解.该注解主要是扫描某个包目录下的Mapper,将Mapper接口类交给Spring进行管理. org.mybatis.spring.annotation.MapperS

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

    目录 mybatis注解之@Mapper和@MapperScan 方式一:使用@Mapper注解 方式二:使用@MapperScan注解 @MapperScan和@Mapper区别及理解 作用 扫描一个包 扫描多个包 mybatis注解之@Mapper和@MapperScan 在使用Mybatis持久层框架来操作数据库时,我们可以使用@Mapper注解和@MapperScan注解来将Mapper接口类交给Sprinig进行管理. 方式一:使用@Mapper注解 优点:粒度更细 缺点:直接在Map

  • Mybatis如何使用@Mapper和@MapperScan注解实现映射关系

    目录 使用@Mapper和@MapperScan注解实现映射关系 Mybatis-@MapperScan和mybatis:scan分析 <mybatis:scan> MapperScan 使用@Mapper和@MapperScan注解实现映射关系 MyBatis与Spring整合后需要实现实体和数据表的映射关系. 实现实体和数据表的映射关系可以在Mapper类上添加@Mapper注解,如下代码: /** * 用户信息Mapper动态代理接口 * @author pan_junbiao **/

  • @MapperScan注解与@Mapper注解的使用

    目录 @MapperScan注解与@Mapper注解使用 MapperScan注解和@Mapper的区别 @MapperScan注解与@Mapper注解使用 @Mapper一般对应一个接口,相当于一个mapper.xml文件,它的作用就是将接口生成一个动态代理类. 当我们写的mapper接口比较多的时候,我们没必须花太多时间一个一个的写,这样写太麻烦了,我们可以使用@ManpperScan注解,指明要扫描的包,它可以扫描所有的mapper文件. 它是如何做到的,我们可以查看里面的源码,主要起作用

  • Mybatis注解实现多数据源读写分离详解

    首先需要建立两个库进行测试,我这里使用的是master_test和slave_test两个库,两张库都有一张同样的表(偷懒,喜喜),表结构 表名 t_user | 字段名 | 类型 | 备注 | | :------: | :------: | :------: | | id | int | 主键自增ID | | name | varchar | 名称 | 表中分别添加两条不同数据,方便测试 主数据库记录name为xiaobin,从库为xiaoliu 开始使用Springboot 整合mybati

  • 基于Spring整合mybatis注解扫描是否成功的问题

    目录 Spring整合mybatis注解扫描是否成功 Mybatis注解@MapperScan扫描包报:Invalid bound statement (not found) 总结 Spring整合mybatis注解扫描是否成功 IDEA spring整合mybatis会使用注解扫描的配置 <context:component-scan base-package="/> 不管是使用@ Component.@Service.@Controller还是Repository,都是sprin

  • SpringBoot使用Mybatis注解实现分页动态sql开发教程

    目录 一.环境配置 二.Mybatis注解 三.方法参数读取 1.普通参数读取 2.对象参数读取 四.分页插件的使用 五.动态标签 六.完整示例 一.环境配置 1.引入mybatis依赖 compile( //SpringMVC 'org.springframework.boot:spring-boot-starter-web', "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.3", //Mybatis依赖及分页

  • java 中MyBatis注解映射的实例详解

    java  中MyBatis注解映射的实例详解 1.普通映射 @Select("select * from mybatis_Student where id=#{id}") public Student getStudent(int id); @Insert("insert into mybatis_Student (name, age, remark, pic,grade_id,address_id) values (#{name},#{age},#{remark}, #{

  • Java 8 开发的 Mybatis 注解代码生成工具

    MybatisAnnotationTools MybatisAnnotationTools 是基于 Java8 开发的一款可以用于自动化生成 MyBatis 注解类的工具,支持配置数据源.类路径,表名去前缀.指定类名前后缀等功能.同时支持 Java 8 和 Mybatis 3.5+ 的一些新特性,比如时间类 LocalDateTime/LocalDate .接口方法返回 Optional 等. 此工具生成的代码是基于注解的 Mybatis 接口方法,所以不会生成 XML 配置文件. 源码地址:G

  • Spring Boot集成MyBatis实现通用Mapper的配置及使用

    什么是通用Mapper 通用Mapper就是为了解决单表增删改查,基于Mybatis的插件.开发人员不需要编写SQL,不需要在DAO中增加方法,只要写好实体类,就能支持相应的增删改查方法. 关于MyBatis,大部分人都很熟悉.MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Pla

  • SpringBoot整合Mybatis注解开发的实现代码

    官方文档: https://mybatis.org/mybatis-3/zh/getting-started.html SpringBoot整合Mybatis 引入maven依赖 (IDEA建项目的时候直接选就可以了) <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <ve

随机推荐