zoukankan      html  css  js  c++  java
  • 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);
        }

        参看链接:http://www.mybatis.cn/archives/862.html

  • 相关阅读:
    无废话MVC入门教程五[Control与View交互]
    无废话MVC入门教程三[路由设置及视图入门]
    无废话MVC入门教程二[第一个小Demo]
    IDEA 插件开发
    慢慢学Linux驱动开发,第十章,GNU C的扩展
    《UNIX环境高级编程》编译问题彻底解决方案
    GNU make笔记
    outlook2003无法显示地址列表 无法打开与该地址列表的相关"联系人"文件夹解决方案
    慢慢学Linux驱动开发,第十二章,加入内核
    ADS: (Fatal)L6002U:Could not open file:..... & L6002
  • 原文地址:https://www.cnblogs.com/zhangshuaivole/p/13830162.html
Copyright © 2011-2022 走看看