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: