Spring Boot的MyBatis注解:@MapperScan和@Mapper
1、Spring Boot与MyBatis融合的矛盾问题:
Spring家族的使命就是为了简化而生,但是随着Spring的发展壮大,有点事与愿违了。为了坚持初心,Spring家族祭出了一大杀器—Spring Boot。Spring Boot的核心理念是:不建议使用xml文件配置。但是,这对MyBatis来说进退两难,因为MyBatis离不开xml,需要xml来配置sql语句。为了迎合Spring Boot的发展理念,MyBatis官方开发了mybatis-spring-boot-starter,我们要想更少的依赖xml,需要深入的研究mybatis-spring-boot-starter中的用法,尤其是@MapperScan和@Mapper的用法。
2、@MapperScan和@Mapper简介:
在不使用@MapperScan前,我们需要直接在Mapper类上面添加注解@Mapper,这种方式要求每一个Mapper类都需要添加此注解,非常麻烦,属于重复劳动。通过使用@MapperScan注解,可以让我们不用为每个Mapper类都添加@Mapper注解。
3、@Mapper注解的使用
作用:在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类
添加位置:接口类上面,代码如下所示:
@Mapper
public interface StudentMapper {//todo
}
4、@MapperScan注解的使用
作用:指定要变成实现类的接口所在的包,包下面的所有接口在编译之后都会生成相应的实现类
添加位置:是在Springboot启动类上面添加,
@SpringBootApplication
@MapperScan("cn.mybatis.mappers")
public class SpringbootMybatisDemoApplication {public static void main(String[] args) {SpringApplication.run(SpringbootMybatisDemoApplication.class, args);}
}
添加@MapperScan(“cn.mybatis.mappers”)注解以后,cn.mybatis.mappers包下面的接口类,在编译之后都会生成相应的实现类
另外,使用@MapperScan注解可以作用到多个包,代码如下所示:
@SpringBootApplication
@MapperScan({"cn.mybatis.mappers.class","cn.mybatis.mappers.student"})
public class SpringbootMybatisDemoApplication{ public static void main(String[] args) { SpringApplication.run(SpringbootMybatisDemoApplication.class, args); }
}
5、使用@MapperScan注解注意事项
Spring Boot不建议使用XML文件配置,MyBatis则有点犯难了,官方推荐使用mybatis-spring-boot-starter与Spring Boot整合。
MyBatis官方建议:直接在Mapper类中采用注解的形式操作数据库,通过@MapperScan扫描制定的映射器存放路径,最终不需要加任何注解,也不需要对应的xml文件来配置sql语句。代码如下形式:
//不需要加任何注解,也不需要对应的xml文件
public interface UserMapper{@Select("select * from user")List<User> getUserList(String userId);
}
Spring Boot的MyBatis注解:@MapperScan和@Mapper相关推荐
- mysql 自动生成mapper_Spring Boot整合mybatis并自动生成mapper和实体实例解析
最近一直都在学习Java,发现目前Java招聘中,mybatis出现的频率挺高的,可能是目前Java开发中使用比较多的数据库ORM框架.于是我准备研究下Spring Boot和mybatis的整合. ...
- Spring Boot 实战 —— MyBatis(注解版)使用方法
原文链接: Spring Boot 实战 -- MyBatis(注解版)使用方法 简介 MyBatis 官网 是这么介绍它自己的: MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过 ...
- spring boot整合mybatis+通用mapper+pagehelper分页插件
spring boot整合mybatis+通用mapper+pagehelper分页插件 pom依赖 <?xml version="1.0" encoding="U ...
- Spring Boot 集成 Mybatis 实现双数据源
转载自 Spring Boot 集成 Mybatis 实现双数据源 这里用到了Spring Boot + Mybatis + DynamicDataSource配置动态双数据源,可以动态切换数据源 ...
- spring boot集成mybatis+事务控制
一下代码为DEMO演示,采用注解的方式完成Spring boot和Mybatis的集成,并进行事物的控制 数据源的配置: 1 spring.datasource.url=jdbc:mysql://lo ...
- spring boot配置mybatis和事务管理
spring boot配置mybatis和事务管理 一.spring boot与mybatis的配置 1.首先,spring boot 配置mybatis需要的全部依赖如下: <!-- Spri ...
- Spring Boot中常见注解诠释
一:@Mapper和@MapperScan 1.@Mapper @Mapper 将接口交给Spring进行管理,为这个接口生成一个实现类,让别的类进行引用.不再写mapper映射文件. @Mapper ...
- Spring Boot 整合MyBatis(23)
Spring Boot 整合MyBatis Spring Boot 整合 Druid 引入依赖 配置 application.yml pring Boot 整合 tk.mybatis 引入依赖 配置 ...
- Spring Boot 整合 MyBatis Plus实现多数据源的两种方式
第一种:使用配置类的方式: 项目结构 xml依赖: <?xml version="1.0" encoding="UTF-8"?> <proje ...
- 干货必看|Spring Boot整合MyBatis框架详解
在开发中,我们通常会对数据库的数据进行操作,Sprirng Boot对关系型数据库和非关系型数据库的访问操作都提供了非常好的整合支持.所以今天壹哥就给大家讲解一下,如何在SpringBoot环境中整合 ...
最新文章
- 最近5年,诺贝尔化学奖都颁给了谁?
- Django-model中的Querysets
- Ipython中如何输入汉字
- 用vue-cli3从0打造一个完整的UI库
- windows server中 森林、域树、域(AD)的区别与联系
- 外挂编程-动作模拟技术
- MySQL流浪记(六)—— CONCAT到GROUP_CONCAT的沿途风景(图文详解)
- Android 开发笔记___Activity的生命周期
- ES6、7学习笔记(尚硅谷)-1-ES5的一些
- 【机器学习】判别模型vs生成模型、概率模型vs非概率模型
- 【学习记录】【python】【tkinter】自学tkinter的简要记录
- Android系统优化的那些年那些事
- java实现微博九宫格图片切分
- Android 之解析XML文件
- 目标跟踪算法_Camshift函数(学习笔记)
- 架设个人FTP——ServU
- PADS PCB中的中英文对照 解决英文看不懂的尴尬
- 09盘点:梦幻诛仙蜀门剑网三的营销启示
- 关于CDN以及如何绕过CDN寻找真实ip
- 解答:C语言中结构体的定义中,后面跟的“结构体变量”到底是什么?
热门文章
- 2019 必看 Android 高级面试题总结
- js navigator platform
- 2017第九届中国云计算大会精彩日程曝光
- 参数中带有“”符号问题
- javascript 中Math函数在勾弦定理计算上的错误
- “懒惰”Linux:“懒惰”集群管理员的 11 个秘诀
- Haxdoors of the Kaspersky Antivirus 6/7
- 9.企业安全建设指南(金融行业安全架构与技术实践) --- 安全认证
- 1.剑指Offer --- 面试的流程
- 3.面试(3) --- 编程