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

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

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

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

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

MyBatis配置文件(二)--settings配置的更多相关文章

  1. Mybatis系列(二):优化MyBatis配置文件中的配置和解决字段名与实体类属性名不相同的冲突

    原文链接:http://www.cnblogs.com/xdp-gacl/p/4264301.html     http://www.cnblogs.com/xdp-gacl/p/4264425.ht ...

  2. MyBatis笔记二:配置

    MyBatis笔记二:配置 1.全局配置 1.properites 这个配置主要是引入我们的 properites 配置文件的: <properties resource="db.pr ...

  3. 【转】MyBatis学习总结(三)——优化MyBatis配置文件中的配置

    [转]MyBatis学习总结(三)——优化MyBatis配置文件中的配置 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的con ...

  4. MyBatis的学习总结三:优化MyBatis配置文件中的配置

    一.优化Mybatis配置文件conf.xml中数据库的信息 1.添加properties的配置文件,存放数据库的信息:mysql.properties具体代码: driver=com.mysql.j ...

  5. MyBatis学习总结(三)——优化MyBatis配置文件中的配置(转载)

    本文转载自:http://www.cnblogs.com/jpf-java/p/6013548.html 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置 ...

  6. MyBatis入门学习教程-优化MyBatis配置文件中的配置

    一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下: 1 <?xml version=" ...

  7. MyBatis学习总结(三)——优化MyBatis配置文件中的配置

    一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下: 1 <?xml version=" ...

  8. MyBatis学习总结(三)——优化MyBatis配置文件中的配置

    一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下: <?xml version="1 ...

  9. MyBatis——优化MyBatis配置文件中的配置

    原文:http://www.cnblogs.com/xdp-gacl/p/4264301.html 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写 ...

随机推荐

  1. tp5 mkdir() 没有权限

  2. 设置IDEA自动提示补全代码,关于idea自动补全的详细设置。

    在IDEA中,默认的代码自动提示不够智能,现在配置成更加智能的方式. File-Settings-Editor-General-Code Completion中 把最上面的大小写敏感度改成none,下 ...

  3. Android开发 WebView的详解

    前言 WebView 是Android显示html内容的主要方式,当然TextView也可以加载html内容.但是WebView除了功能更加强大,最重要的是还能调用Html里的JavaScript语言 ...

  4. Axios的get和post请求写法

    执行get请求 // 为给定 ID 的 user 创建请求 axios.get('/user?ID=12345') .then(function (response) { console.log(re ...

  5. bat删除多少天前的文件包含子目录

    通过 Forfiles 删除指定目录下过期的备份文件 /*-- 用法详解 D:/>forfiles /? FORFILES [/P pathname] [/M searchmask] [/S] ...

  6. Centos--swoole平滑重启服务

    平滑重启: 已经打开的服务: 首先在server服务中为进程添加名字: /** * @param $server */ public function onStart($server) { swool ...

  7. Android 之 BroadcaseReceiver

    1.在AndroidManifest.xml中注册 <receiver android:name=".MyReceiver"> <intent-filter &g ...

  8. Windows安全证书生成方法(开发者证书)

    首先,查看本机安装的证书可在“运行”中输入:certmgr.msc 一.win8.8.1.win10系统,使用管理员powershell创建证书: (1)利用如下命令来创建证书并获取到其指纹 New- ...

  9. LintCode_1 单例模式

    从今天开始我的LintCode之旅,由于C/C++好久没有使用了,语法生疏不说,低级错误频繁出现,因此在做题之后,还会有部分时间复习语法项目. ---------------------------- ...

  10. solusvm 主控端迁移

    难点在于solusvm被控端已经开了小鸡的情况. 备份数据库: #!/bin/sh ## Vars CONF=/usr/local/solusvm/includes/solusvm.conf FILE ...