zoukankan      html  css  js  c++  java
  • MyBatis中的@Mapper注解 @Mappe与@MapperScan关系

    从mybatis3.4.0开始加入了@Mapper注解,目的就是为了不再写mapper映射文件

    现在项目中的配置

    public interface DemoMapper{
    int deleteByPrimaryKey(Integer id);
    }


    @MapperScan("com.mapper")
    public class DlxRrsApplication {
    }

    原因:

         我们定义DemoMapper类,但是并没有在该类上定义类似@Service或者@Mapper之类的注解,那么为什么可以被Spring管理呢?

    (1)方式一:使用@Mapper注解

           为了让DemoMapper能够让别的类进行引用,我们可以在DemMapper类上添加@Mapper注解:

    Java代码  
    @Mapper  
    public interface DemoMapper {  
        @Insert("insert into Demo(name) values(#{name})")  
        @Options(keyProperty="id",keyColumn="id",useGeneratedKeys=true)  
        public void save(Demo demo);  
    }  
     

    直接在Mapper类上面添加注解@Mapper,这种方式要求每一个mapper类都需要添加此注解,麻烦。

    (2)方式二:使用@MapperScan注解

           通过使用@MapperScan可以指定要扫描的Mapper类的包的路径,比如:

    Java代码  
    @SpringBootApplication  
    @MapperScan("com.kfit.*.mapper")  
    public class App {  
        public static void main(String[] args) {  
           SpringApplication.run(App.class, args);  
        }  
    }  
     

    或者:

    Java代码  
    @SpringBootApplication  
    @MapperScan("com.kfit.mapper")  
    public class App {  
        public static void main(String[] args) {  
           SpringApplication.run(App.class, args);  
        }  
    }  
     

           可以根据包的结构指定不同的表达式。

    使用@MapperScan注解多个包

    可以使用如下的方式指定多个包:

    Java代码  
    @SpringBootApplication  
    @MapperScan({"com.kfit.demo","com.kfit.user"})  
    public class App {  
        public static void main(String[] args) {  
           SpringApplication.run(App.class, args);  
        }  
    }  
     

           如果mapper类没有在Spring Boot主程序可以扫描的包或者子包下面,可以使用如下方式进行配置:

    Java代码  
    @SpringBootApplication  
    @MapperScan({"com.kfit.*.mapper","org.kfit.*.mapper"})  
    public class App {  
        public static void main(String[] args) {  
           SpringApplication.run(App.class, args);  
        }  

  • 相关阅读:
    分布式session管理解决方案
    RabbitMQ知识汇总
    RabbitMQ之集群模式总结
    Flexbox参数详解
    CSS Lint
    javascript中的defer属性和async属性
    简介BFC
    GIT 牛刀小试 (第二发)
    GIT 牛刀小试 (第一发)
    如何让浏览器支持HTML5标签
  • 原文地址:https://www.cnblogs.com/panchanggui/p/10402158.html
Copyright © 2011-2022 走看看