您的位置:首页 > 其它

MyBatis-Plus(四)~使用过程中的配置选项(进阶配置)

2020-01-14 00:30 531 查看

二、进阶配置

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

(1)、mapUnderscoreToCamelCase

  • 类型:
    boolean
  • 默认值:
    true

是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN(下划线命名) 到经典 Java 属性名 aColumn(驼峰命名) 的类似映射。

注意:

此属性在 MyBatis 中原默认值为 false,在 MyBatis-Plus 中,此属性也将用于生成最终的 SQL 的 select body

如果您的数据库命名符合规则无需使用

@TableField
注解指定数据库字段名

(2)、aggressiveLazyLoading

  • 类型:
    boolean
  • 默认值:
    true

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

    1.Spring Boot:   

    mybatis-plus:
          configuration:
                aggressive-lazy-loading: true

    2.Spring MVC:

    <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
            <property name="configuration">
                <bean class="com.baomidou.mybatisplus.core.MybatisConfiguration">
                    <property name="aggressiveLazyLoading" value="true"/>
                </bean>
            </property>
    </bean>

(3)、autoMappingBehavior

  • 类型:
    AutoMappingBehavior
  • 默认值:
    partial

MyBatis 自动映射策略,通过该配置可指定 MyBatis 是否并且如何来自动映射数据表字段与对象的属性,总共有 3 种可选值:

  • AutoMappingBehavior.NONE:不启用自动映射
  • AutoMappingBehavior.PARTIAL:只对非嵌套的 resultMap 进行自动映射
  • AutoMappingBehavior.FULL:对所有的 resultMap 都进行自动映射

    1.Spring Boot:

    mybatis-plus:
          configuration:
                auto-mapping-behavior: partial

    2.Spring MVC:

    <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
            <property name="configuration">
                <bean class="com.baomidou.mybatisplus.core.MybatisConfiguration">
                    <property name="autoMappingBehavior" value="PARTIAL"/>
                </bean>
            </property>
    </bean>

(4)、autoMappingUnknownColumnBehavior

  • 类型:
    AutoMappingUnknownColumnBehavior
  • 默认值:
    NONE

MyBatis 自动映射时未知列或未知属性处理策略,通过该配置可指定 MyBatis 在自动映射过程中遇到未知列或者未知属性时如何处理,总共有 3 种可选值:

  • AutoMappingUnknownColumnBehavior.NONE:不做任何处理 (默认值)
  • AutoMappingUnknownColumnBehavior.WARNING:以日志的形式打印相关警告信息
  • AutoMappingUnknownColumnBehavior.FAILING:当作映射失败处理,并抛出异常和详细信息

    1.Spring Boot:

    mybatis-plus:
          configuration:
                auto-mapping-unknown-column-behavior: none

    2.Spring MVC:

    <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
            <property name="configuration">
                    <bean class="com.baomidou.mybatisplus.core.MybatisConfiguration">
                        <property name="autoMappingUnknownColumnBehavior" value="NONE"/>
                    </bean>
            </property>
    </bean>

(5)、cacheEnabled

  • 类型:
    boolean
  • 默认值:
    true

全局地开启或关闭配置文件中的所有映射器已经配置的任何缓存,默认为 true。

    1.Spring Boot:

    mybatis-plus:
          configuration:
                cache-enabled: true

    2.Spring MVC:

    <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
            <property name="configuration">
                    <bean class="com.baomidou.mybatisplus.core.MybatisConfiguration">
                            <property name="cacheEnabled" value="true"/>
                    </bean>
            </property>
    </bean>

(6)、callSettersOnNulls

  • 类型:
    boolean
  • 默认值:
    false

指定当结果集中值为 null 的时候是否调用映射对象的 Setter(Map 对象时为 put)方法,通常运用于有 Map.keySet() 依赖或 null 值初始化的情况。

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

当您遇到类似的情况,请针对该属性进行相关配置以解决以上问题。

注意:基本类型(int、boolean 等)是不能设置成 null 的。

    1.Spring Boot:

    mybatis-plus:
          configuration:
                call-setters-on-nulls: false

    2.Spring MVC:

    <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
            <property name="configuration">
                    <bean class="com.baomidou.mybatisplus.core.MybatisConfiguration">
                        <property name="callSettersOnNulls" value="false"/>
                    </bean>
            </property>
    </bean>

(7)、configurationFactory

  • 类型:
    Class<?>
  • 默认值:
    null

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

static Configuration getConfiguration()
。(从 3.2.3 版本开始)

    1.Spring Boot:

    mybatis-plus:
          configuration:
                configuration-factory: com.xxx.SampleConfigurationFactory

    2.Spring MVC:

    <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
            <property name="globalConfig">
                    <bean class="com.baomidou.mybatisplus.core.config.GlobalConfig">
                            <property name="configurationFactory" value="com.xxx.SampleConfigurationFactory"/>
                    </bean>
            </property>
    </bean>

转载于:https://my.oschina.net/tobeexpertismydream/blog/2983483

  • 点赞
  • 收藏
  • 分享
  • 文章举报
chengxi2031 发布了0 篇原创文章 · 获赞 0 · 访问量 4123 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: