springboot中使用mybatis-plus

阅读数:182 评论数:0

跳转到新版页面

分类

python/Java

正文

MyBatis Plus官方文档

一、依赖

MyBatis-Plus 3.0基于JDK8。

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>undefined</version>
</dependency>

二、配置

springboot配置MapperScan

@SpringBootApplication
@MapperScan("com.baomidou.mybatisplus.samples.quickstart.mapper")
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

1、基本配置

mybatis-plus:
  ......
  configuration:
    ......
  global-config:
    ......
    db-config:
      ......  

(1)configLocation

类型:String

默认值 : null

Mybatis配置文件位置,如果有单独的Mybatis配置,将路径配置到configLocation。

Mybatis配置可以参考:Mybatis官方文档

(2)mapperLocations

类型:String[]

默认值:["classpath*:/mapper/**/*.xml"]

MyBatis Mapper所对应的XML文件位置,如果你在Mapper中有自定义的方法(XML中有自定义实现),需要进行该配置,告诉Mapper所对应的XML文件位置。

Maven多模块项目的扫描路径需以classpath*:开头(即加载多个jar包下的XML文件)

(3)typeAliasesPackage

类型:String

默认值: null

通过该属性可以给包中的类注册别名,注册后在Mapper对应的XML文件中可以直接使用类名,而不用使用全限定的类名(即XML中调用的时候不用包含包名)。

(4)typeAliasesSuperType

类型:Class<?>

默认值: null

需与typeAliasesPackage一起使用,如果配置了该属性,则仅仅会扫描路径下以该类作为父类的域对象。

(5)typeHandlersPackage

类型:String

默认值: null

如果配置了该属性,SqlSessionFactoryBean会把该包下面的类注册为对应的TypeHandler,TypeHandler通常用于自定义类型转换。

(6)typeEnumsPackage

类型:String

默认值: null

如果配置了该属性,会将路径下的枚举类进行注入,让实体类字段能够简单快捷的使用枚举属性。

(7)checkConfigLocation

类型:boolean

默认值:false

启动时是否检查MyBatis XML文件的存在。

(8)executorType

通过该属性可指定MyBatis的执行器,MyBatis的执行器总共有三种,默认simple:

ExecutorType.SIMPLE:该执行器类型不做特殊的事情,为每个语句的执行创建一个新的预处理语句(PreparedStatement)。

ExecutorType.REUSE:该执行器类型会复用预处理语句。

ExecutorType.BATCH:该执行器类型会批量执行所有的更新语句。

(9)configurationProperties

类型:Properties

默认值:null

指定外部化MyBatis Properties配置,默认该配置可以抽离配置,实现不同环境的配置部署。

(10)configuration

类型:Configuration

默认值:null

原生MyBatis所支持的配置。

(11)globalConfig

类型:com.baomidou.mybatisplus.core.config.GlobalConfig

默认值:GlobalConfig::new

Mybatis-plus全局配置。

2、Configuration

本部分的配置大都为Mybatis原生支持的配置,这意味着可以通过MyBatis XML配置文件的形式进行配置。

(1)mapUnderscoreToCamelCase

类型:boolean

默认值:true

是否开启自动驼峰命名规则映射,即A_COLUMN到aColumn的映射。

此属性在Mybatis中默认为false,同时如果你的数据库命名符合此规则,则无需使用@TableField注解指定数据为字段名。

(2)defaultEnumTypeHandler

类型:Class<? extends TypeHandler>

默认值:org.apache.ibatis.type.EnumTypeHandler

org.apache.ibatis.type.EnumTypeHandler存储枚举的名称。

org.apach.ibatis.type.EnumOrdinalTypeHandler存储枚举的索引。

com.baomidou.mybatisplus.extension.handlers.MybatisEnumTypeHandler 枚举类需要实现IEnum接口或字段标记@EnumValue注解。

(3)aggressiveLazyLoading

类型:boolean

默认值:true

当设置为true的时候,懒加载的对象可能被任何懒属性全部加载,否则,每个属性都按属加载,需要和lazyLoadingEnabled一起使用。

(4)autoMappingBehavior

指定Mybatis如何自动映射数据库字段和对象的属性,默认partial。

AutoMappingBehavior.NONE 不启动自动映射。

AutoMappingBehavior.PARTIAL  只对非嵌套的resultMap进行自动映射

AutoMappingBehavior.FULL  对所有的resultMap都进行自动映射。

(5)autoMappingUnknownColumnBehavior

指定自动映射过程中遇到未知列或者未知属性时如何处理。

AutoMappingUnknownColumnBehavior.NONE 不做处理(默认值 )

AutoMappingUnknownColumnBehavior.WARNING 以日志的形式打印相关警告信息。

AutoMappingUnknownColumnBehavior.FAILING 当映射失败处理,并抛出异常和详细信息。

(6)localCacheScope

类型:String

默认值:SESSION

Mybatis一级缓存,默认为SESSION。

SESSION:同一个session相同查询语句不会再次查询数据库。

STATEMENT:关闭一级缓存。

单服务架构中,一级缓存开启不会影响业务,只会提高性能。微服务架构中需要关闭一级缓存,原因:Service1先查询数据,若之后Service2修改了数据,之后Service1又再次以同样的查询条件查询数据,因走缓存会出现查到的数据不是最新数据。

(7)cacheEnabled

类型:boolean

默认值:true

开启Mybatis二级缓存。

(8)callSettersOnNulls

类型:boolean

默认值: false

Mybatis在使用映射查询结果中的列,如果查询结果中包含空值的列,则Mybatis在映射的时候,不会映射这个字段,这就导致在调用该字段的时候由于没有映射,取不到而报空指针异常。

(9)configurationFactory

类型:Class<?>

默认值:null

指定一个提供Configuration实例的工厂类。该工厂生产的实例将用来加载已经被反序列对象的懒加载属性值,其必须包含一个签名方法static Configuration getConfiguration()。

3、GlobalConfig

(1)banner

类型:boolean

默认值:true

控制台是否输出mybatis-plus的logo

(2)enableSqlRunner

类型:boolean

默认值:false

是否初始化SqlRunner

(3)sqlInjector

SQL注入器(starter下支持@bean注入)

(4)superMapperClass

类型:Class

默认值:com.baomidou.mybatisplus.core.mapper.Mapper.class

通用Mapper父类(影响sqlInjector,只有这个类的子类的mapper才会注入sqlInjector内的method)

(5)metaObjectHandler

元对象字段填充控制器。

(6)identifierGenerator

Id生成器

(7)dbConfig

MyBatis-Plus全局策略中的DB策略配置。

4、DbConfig

(1)idType

全局默认主键类型。

(2)tablePrefix

类型:String

默认值: null

表名前缀。

(3)schema

(4)columnFormat

类型:String

默认值: null

字段format,例 %s(对主键无效)

(5)propertyFormat

entity的字段的format,只有在column as property这种情况下生效。

(6)tableUnderline

表名是否使用驼峰转下划线命名,只对表名生效。默认true,

(7)capitalModel

大写命名,对表名和字段名均生效,默认false。

(8)keyGenerator

表主键生成器。

(9)logicDeleteField

类型:String

默认值:null

全局的entity的逻辑删除字段属性名。

(10)logicDeleteValue

类型:String

默认值:1

逻辑已删除值。

(11)logicNotDeleteValue

类型:String

默认值:0

逻辑未删除值。

(12)InsertStrategy

类型:com.baomidou.mybatisplus.annotation.FieldStrategy

默认值:NOT_NULL

在insert的时候的字段验证策略。

(13)updateStrategy

类型:com.baomidou.mybatisplus.annotation.FieldStrategy

默认值:NOT_NULL

在update的时候的字段验证策略。

(14)selectStrategy

类型:com.baomidou.mybatisplus.annotation.FieldStrategy

默认值:NOT_NULL

select时,wrapper根据内部entity生成的where条件。




相关推荐

一、概述 springboot中有两种方式使用kafka时,直接使用kafka-client连接kafka服务;另一种是使用spring-kafka框架来连接kafka。 1、版本兼容 使用时要注意版

当然可以自己写redis的工具类,或者使用第三方开源jar包或代码,这里使用spring boot的集成类。 一、pom依赖 <dependency> <gro

websocket协议基于tcp的网络协议,它实现浏览器与器全双工通信。 spring boot2 +websocket 1、添加依赖 <pre clas

背景: 之前用spring boot+mybatis+oracle,现在要改成spring boot_mybatis+postgresql。 为了想让一套代码即可

共同点 都是用来表示Spring某个类是否可以接收HTTP请求。 不同点 @Controller标识一个spring类是Spring MVC c

系统异常捕获 参见:spring boot 2 全局异常处理 @ControllerAdvice(annotations = {RestController.class}) public class

从SSH(Structs/Spring/Hibernate)到SSM(SpringMVC/Spring/MyBatis),到现在一个S(Spring)就够的年代,可见Spring越来越重要了。<

mybatis-plus是一个mybatis增强版工具,为了简化开发和提高效率。 可以在idea安装一个mybatisx插件,此插件可以通过mapper中的方法定位到xml中。</

@ConditionalOnMissingBean只能在@Bean注解的方法上使用。 可以给该注解传入参数例如@ConditionOnMissingBean(name = "exa

2.4版本之前 在之前,我们在yaml配置文件中,使用spring.profiles来定义不同环境的标识,比如下面这样: spring: profiles: "dev" name: dev.di