0.mybatis-plus 官网:https://mp.baomidou.com/
1.导入jar
<!--引入 MyBatis-Plus 之后请不要再次引入 MyBatis 以及 MyBatis-Spring,以避免因版本差异导致的问题--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.5</version> <exclusions> <exclusion> <artifactId>org.mybatis</artifactId> <groupId>mybatis</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.2</version> </dependency>
2.配置 yml
mybatis-plus: # MyBatis 配置文件位置,如果您有单独的 MyBatis 配置,请将其路径配置到 configLocation 中。 # config-location: classpath:mybatis-config.xml # MyBatis Mapper 所对应的 XML 文件位置,如果您在 Mapper 中有自定义方法 mapper-locations: classpath:mapper/**/*.xml # MyBaits 别名包扫描路径,通过该属性可以给包中的类注册别名 实体扫描,多个package用逗号或者分号分隔 type-aliases-package: com.xxxx.entity # # 配置扫描通用枚举 # 支持统配符 * 或者 ; 分割 type-enums-package: com.abbottliu.sys.enums,com.abbottliu.enums # 启动时是否检查 MyBatis XML 文件的存在,默认不检查 check-config-location: false # ExecutorType.SIMPLE:该执行器类型不做特殊的事情,为每个语句的执行创建一个新的预处理语句(PreparedStatement) # ExecutorType.REUSE:该执行器类型会复用预处理语句(PreparedStatement) # ExecutorType.BATCH:该执行器类型会批量执行所有的更新语句 executor-type: simple configuration: # 是否开启自动驼峰命名规则(camel case)映射 map-underscore-to-camel-case: true #配置JdbcTypeForNull, oracle数据库必须配置 jdbc-type-for-null: null global-config: #驼峰下划线转换 column-underline: true db-config: # 数据库类型,默认值为未知的数据库类型 db-type: mysql logic-delete-value: 1 logic-not-delete-value: 0 banner: false
3.创建配置相关 bean
/** * mybatis-plus SQL执行效率插件【生产环境可以关闭】 */ @Bean @Profile({"dev","test"})// 设置 dev test 环境开启 public PerformanceInterceptor performanceInterceptor() { PerformanceInterceptor performanceInterceptor=new PerformanceInterceptor(); performanceInterceptor.setFormat(true); return performanceInterceptor; } /** * 分页插件 */ @Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor paginationInterceptor=new PaginationInterceptor(); return paginationInterceptor; } // 启用 @Version 乐观锁 @Bean public OptimisticLockerInterceptor optimisticLockerInterceptor() { return new OptimisticLockerInterceptor(); } /** * 注入sql注入器 */ @Bean public ISqlInjector sqlInjector(){ return new LogicSqlInjector(); } @Bean public TimeIntercept timeIntercept() { TimeIntercept timeIntercept =new TimeIntercept(); return timeIntercept; }