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

  • 相关阅读:
    jsp带参转链接
    HTML select 操作
    HTML5 微信二维码提示框
    IOS 开发 【objective-c 基础1】
    {每日一题}:一个整数,它加上100和加上268后都是一个完全平方数,请问该数是多少?
    python编程系列---多线程共享全局变量出现了安全问题的解决方法
    3.如何理解开多线程可以充分利用CPU?
    python编程系列---最详细的讲解进程与线程的关系
    {每日一题}:随机输入四个不同的数字,求:能组成多少个互不相同且无重复数字的三位数?各是多少?
    2.单核CPU是如何实现多进程的?
  • 原文地址:https://www.cnblogs.com/panchanggui/p/10402158.html
Copyright © 2011-2022 走看看