MyBatis三settings配置

作者: 一觉睡到丶小时候 | 来源:发表于2019-09-30 15:14 被阅读0次

    settings是MyBatis中最复杂的配置,它能影响MyBatis底层的运行,大部分情况下使用默认值,只需要修改一些常用的规则即可。常用规则有自动映射、驼峰命名映射、级联规则、是否启动缓存、执行器类型等。

    所有配置可参考MyBatis官方文档:http://www.mybatis.org/mybatis-3/configuration.html#settings

    本文列出重要的几个配置项及意义,并挑几个常用配置加以说明:

    <!--设置 -->
        <settings>
            <!--缓存配置的全局开关:如果这里设置成false,那么即便在映射器中配置开启也无济于事 -->
            <setting name="cacheEnabled" value="true" />
            <!--延时加载的全局开关 -->
            <setting name="lazyLoadingEnabled" value="false" />
            <!-- 是否允许单一语句返回多结果集 -->
            <setting name="multipleResultSetsEnabled" value="true" />
            <!-- 使用列标签代替列名,需要兼容驱动 -->
            <setting name="useColumnLabel" value="true" />
            <!-- 允许JDBC自动生成主键,需要驱动兼容。如果设置为true,则这个设置强制使用自动生成主键,尽管一些驱动不能兼容但仍能正常工作 -->
            <setting name="useGeneratedKeys" value="false" />
            <!-- 指定MyBatis该如何自动映射列到字段或属性:NONE表示取消自动映射;PARTIAL表示只会自动映射,没有定义嵌套结果集和映射结果集;FULL会自动映射任意复杂的结果集,无论是否嵌套 -->
            <setting name="autoMappingBehavior" value="PARTIAL" />
            <!-- 配置默认的执行器:SIMPLE是普通的执行器;REUSE会重用预处理语句;BATCH会重用语句并执行批量更新 -->
            <setting name="defaultExecutorType" value="SIMPLE" />
            <!--设置超时时间:它决定驱动等待数据库响应的秒数,任何正整数-->
            <setting name="defaultStatementTimeout" value="25"/>
            <!--设置数据库驱动程序默认返回的条数限制,此参数可以重新设置,任何正整数 -->
            <setting name="defaultFetchSize" value="100" />
            <!-- 允许在嵌套语句中使用分页(RowBounds) -->
            <setting name="safeRowBoundsEnabled" value="false" />
            <!-- 是否开启自动驼峰命名规则,即从a_example到aExample的映射 -->
            <setting name="mapUnderscoreToCamelCase" value="true" />
            <!-- 本地缓存机制,防止循环引用和加速重复嵌套循环 -->
            <setting name="localCacheScope" value="SESSION" />
            <!-- 当没有为参数提供特定JDBC类型时,为空值指定JDBC类型。某些驱动需要指定列的JDBC类型,多数情况直接用一般类型即可,如NULL/VARCHAR/OTHER -->
            <setting name="jdbcTypeForNull" value="OTHER" />
            <!-- 指定触发延迟加载的方法,如equals/clone/hashCode/toString -->
            <setting name="lazyLoadTriggerMethods" value="equals" />
        </settings>
    

    我目前使用的最有用的配置就是mapUnderscoreToCamelCase这个,我的数据库字段的命名格式是test_example这种,对应的pojo对象中属性的命名是驼峰式,如果这个属性用默认值false,就会发现需要在sql语句中进行转换,如果我的数据库表中有三个字段分别是user_id,user_name,user_age,那我查询所有信息的时候不能这样👇

    SELECT * FROM user
    

    而是要将每个字段都转换成驼峰式,像这样👇

    SELECT user_id as userId,user_name as userName,user_age as userAge FROM user
    

    想象一下,如果我的表中有十几个字段,那我查询所的时候就需要一个个进行转换,太麻烦了,但是如果把这个配置设置成true,就完全不用这么麻烦了。

    其他的目前还没遇到,等遇到了再补充吧,以上就是settings配置。

    相关文章

      网友评论

        本文标题:MyBatis三settings配置

        本文链接:https://www.haomeiwen.com/subject/hqxhpctx.html