mybatis plus 相關配置總結


mybatis-plus:
  ## mapper文件位置
  mapper-locations: classpath*:/mapper/**/*.xml
  ## 別名包設置,在mapper.xml中可直接用類名
  type-aliases-package: com.xx.xx.entity
  global-config:
    db-config:
      ## 生成ID方式: AUTO 數據庫自增  INPUT 自己輸入  ASSIGN_UUID 默認生成器
      id-type: auto
      ## 邏輯刪除字段
      logic-delete-field: deleted
      ## 邏輯刪除已刪除值
      logic-delete-value: 1
      ## 邏輯刪除未刪除值
      logic-not-delete-value: 0
  configuration:
    ## 自動駝峰命名規則映射
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

1 type-aliases-package: 配了此項,在mapper.xml文件的resultMap的type或者parameterType使用自定義的pojo時,可以只寫一個實體名 (而不用寫全限定名)

 2 @MapperScan(basePackages="com.ostrich.*.repository")

配置文件中的:mapper-locations:classpath*:/mapper/**/*.xml

PS: location的這種寫法,首先mapper代表去找mapper文件夾,中間的兩個*,代表匹配mapper文件夾下的所有子文件夾(如果有的話),最后的*.xml代表匹配所有的xml

 

 

在springBoot整合mybatis時,這兩個配置缺一不可:@MapperScan是掃描mapper接口的也就是dao類;mapper-locations是掃描mapper.xml的

PS: springBoot整合mybatis時,需要配置mybatis的包掃描路徑,或@Mapper注解

方式1:直接懟

@MapperScan(basePackages ={"com.xx.xx.dao"})

 或者:

 方式2:寫一個mybatis的配置類 MybatisPlusConfig + @Configuration + @MapperScan

 1 @Configuration
 2 @MapperScan("com.xx.xx.dao")
 3 public class MybatisPlusConfig {
 4 
 5     /**
 6      * 分頁插件
 7      *
 8      * @return
 9      */
10     @Bean
11     public PaginationInterceptor paginationInterceptor() {
12         PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
13         // 設置請求的頁面大於最大頁后操作, true調回到首頁,false 繼續請求  默認false
14         // paginationInterceptor.setOverflow(false);
15         // 設置最大單頁限制數量,默認 500 條,-1 不受限制
16         // paginationInterceptor.setLimit(500);
17         // 開啟 count 的 join 優化,只針對部分 left join
18         paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
19         return paginationInterceptor;
20     }
21 }

以上兩種方式,效果是一樣的,但是推薦第二種,因為更專業,留下一個干干凈凈的啟動類,不香么?

1 @SpringBootApplication
2 public class XXXApplication {
3 
4     public static void main(String[] args) {
5         SpringApplication.run(XXXApplication.class, args);
6     }
7 
8 }

上面有一個@Configuration注解,會被springBoot工程在啟動時掃描到。

 因為springBoot啟動類上的注解@SpringBootApplication是一個三合一的注解,點進去看@SpringBootApplication:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM