本文会详细介绍MyBatis的常用配置

1.properties节点

<properties resource="mybatis-config.properties">
<property name="username" value="dev_user"/>
<property name="password" value="123456"/>
</properties>
resource配置了外部配置类,表示我们某些配置会放在外部,同时支持目前比较流行的 yml文件
property节点中的元素可以被下面的其他节点作为变量引用,引用语法为${key}
例如:
下面的节点中,username 和password两个节点的内容会从properties中获取,而driver和url则会从外部配置文件中读取
如果外部配置文件中与properties中有冲突的配置,会采用外部配置文件的配置
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>

从 3.4.2版本开始,我们可以为参数指定一个默认值写法为

首先开启默认值的使用

<properties resource="mybatis-config.properties">

 <property name="org.apache.ibatis.parsing.PropertyParser.enable-default-value" value="true"/> 

</properties>

如果username 没有值,会采用默认值ut_user

 <property name="username" value="${username:ut_user}"/>

2.关键设置

<settings>
//开启全局缓存,默认开启
<setting name="cacheEnabled" value="true"/>
//开启延时加载,默认关闭
<setting name="lazyLoadingEnabled" value="true"/>
//按需加载对象属性。默认关闭,如果开启了会加载对象的所有属性
<setting name="multipleResultSetsEnabled" value="true"/>
//使用数据库列别名代替列名,默认开启
<setting name="useColumnLabel" value="true"/>
//允许JDBC自动生成主键,默认关闭且需要驱动支持
<setting name="useGeneratedKeys" value="false"/>
//映射策略,默认PARTIAL只会映射没有定义嵌套的结果集
<setting name="autoMappingBehavior" value="PARTIAL"/>
//发现未知列时的策略默认为NONE不做提醒
<setting name="autoMappingUnknownColumnBehavior" value="NONE"/>
//配置默认的执行器默认SIMPLE
<setting name="defaultExecutorType" value="SIMPLE"/>
//自动超时时间
<setting name="defaultStatementTimeout" value="25"/>

//允许在嵌套语句中使用分页,默认False
<setting name="safeRowBoundsEnabled" value="false"/> //是否开启驼峰命名映射默认False
<setting name="mapUnderscoreToCamelCase" value="false"/>
//本地缓存策略默认SESSION
<setting name="localCacheScope" value="SESSION"/>
//没有为参数提供JDBC类型时,的默认类型,一般为OTHER
<setting name="jdbcTypeForNull" value="OTHER"/> //定义触发延时加载的方法:逗号分隔
<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>

3.映射器

用于配置MyBatis 到哪里去找映射文件

<mappers>
<mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
<mapper resource="org/mybatis/builder/BlogMapper.xml"/>
<mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>
<mappers>
<mapper class="org.mybatis.builder.AuthorMapper"/>
<mapper class="org.mybatis.builder.BlogMapper"/>
<mapper class="org.mybatis.builder.PostMapper"/>
</mappers>
 

4.类别名

因为我们会写很多重复的包名,所以我们需要统一定义一下这些名称的缩写

这样剩下使用domain.blog.Blog的地方只需要写Blog就可以了

<typeAliases>
<typeAlias alias="Blog" type="domain.blog.Blog"/>
</typeAliases>

MyBatis系列:二、配置文件详解的更多相关文章

  1. Hexo系列(二) 配置文件详解

    Hexo 是一款优秀的博客框架,在使用 Hexo 搭建一个属于自己的博客网站后,我们还需要对其进行配置,使得 Hexo 更能满足自己的需求 这里所说的配置文件,是位于站点根目录下的 _config.y ...

  2. nginx高性能WEB服务器系列之四配置文件详解

    nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...

  3. 深入浅出Mybatis系列四-配置详解之typeAliases别名(mybatis源码篇)

    注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(三)---配置详解之properties ...

  4. 深入浅出Mybatis系列三-配置详解之properties与environments(mybatis源码篇)

    注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(二)---配置简介(mybatis源码篇 ...

  5. mybatis系列-05-SqlMapConfig.xml详解

    mybatis的全局配置文件SqlMapConfig.xml,配置内容如下: properties(属性) settings(全局配置参数) typeAliases(类型别名) typeHandler ...

  6. mybatis加载配置文件详解

    spring整合Mybatis后,SqlSessionFactory的创建由spring进行了代理,以下是SqlSessionFactory创建的流程 SqlSessionFactoryBean: p ...

  7. Elasticsearch学习系列之配置文件详解

    ################################### Cluster ################################### #定义集群名称,默认是elasticse ...

  8. ansible笔记(二)--配置文件详解

    配置文件ansible.cfg约有350行语句,大多数为注释行默认配置项.该文件遵循INI格式,分为如下几类配置.(1)[defaults] [defaults] # inventory = /etc ...

  9. Vue学习系列(二)——组件详解

    前言 在上一篇初识Vue核心中,我们已经熟悉了vue的两大核心,理解了Vue的构建方式,通过基本的指令控制DOM,实现提高应用开发效率和可维护性.而这一篇呢,将对Vue视图组件的核心概念进行详细说明. ...

  10. 2017.2.9 深入浅出MyBatis技术原理与实践-第八章 MyBatis-Spring(二)-----配置文件详解

    深入浅出MyBatis技术原理与实践-第八章 MyBatis-Spring(二) ------配置文件详解 8.2 MyBatis-Spring应用 8.2.1 概述 本文主要讲述通过注解配置MyBa ...

随机推荐

  1. Serilog

    参考 asp.net core使用serilog将日志推送到腾讯云日志服务

  2. http协议是无状态协议,它的无状态指的是什么,如何解决这种情况

    http是无状态的协议,也是不安全的协议, 它的无状态是指对于事务处理没有记忆能力,缺少状态意味着后续的操作需要前面的信息. 解决办法:1,通过cookie解决,2,通过session会话保存.

  3. Python webdriver调用Chrome报错

    报错信息如下: selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to b ...

  4. OC(构造函数,分类等知识总结)

    文章来源:http://my.oschina.net/luoguankun/blog/219532 一.成员变量的作用域 ·        @public ·        在任何地方都能直接访问对象 ...

  5. JavaEE高级-Struts2学习笔记

    Struts2是一个用来来发MVC应用的框架,它提供了Web应用程序开发过程中一些常见问题的解决方案: - 对来自用户的输入数据进行合法的验证 - 统一的布局 - 可扩展性. - 国际化和本地化 - ...

  6. Linux学习--第六天--软件包

    yum在线管理 管理的是rpm包,光盘里面都有 /etc/yum.repos.d下面有四个文件,对应网络yum源,光盘yum源等.如果需要用到哪个源,将其他三个源的enabled设置为0即可. |源配 ...

  7. 四、续绑定SignaIR的用户管理-(添加好友和消息盒子)

    一.聊天消息表(普通消息,申请消息,群聊消息) CREATE TABLE MSG_INFO ( MSG_Id INT PRIMARY KEY AUTO_INCREMENT, -- 消息标识 MSG_T ...

  8. Linux日常之以当前时间命名文件

    要求:将当前硬件信息的内容统一以一个文件的形式写入目录date中,且该文件是以“cpu_当前时间.txt”方式命名:    实现该要求主要理解三方面: (1) 显示当前硬件信息的命令:lscpu (2 ...

  9. thinkphp5.0.19 表单令牌

    助手函数token() [F:\phpStudy\WWW\csweb\thinkphp\helper.php] request类token()方法 [F:\phpStudy\WWW\csweb\thi ...

  10. postman(三):详解postman动态变量使用

    参考: Variables Dynamic variables