• 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);  
        }  

  • 相关阅读:
    shell编程
    redis不重启,切换RDB备份到AOF备份
    java中接口和抽象类的区别
    java中的泛型
    java中有关初始化的问题
    java中的多态
    java中的Iterator和ListIterator的区别
    Collection集合的三种初始化方法
    java正则表达式appendReplacement和appendTail方法
    java中main函数的String[] args
  • 原文地址:https://www.cnblogs.com/panchanggui/p/10402158.html
Copyright © 2020-2023  润新知