MyBatis系列:二、配置文件详解
本文会详细介绍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系列:二、配置文件详解的更多相关文章
- Hexo系列(二) 配置文件详解
Hexo 是一款优秀的博客框架,在使用 Hexo 搭建一个属于自己的博客网站后,我们还需要对其进行配置,使得 Hexo 更能满足自己的需求 这里所说的配置文件,是位于站点根目录下的 _config.y ...
- nginx高性能WEB服务器系列之四配置文件详解
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
- 深入浅出Mybatis系列四-配置详解之typeAliases别名(mybatis源码篇)
注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(三)---配置详解之properties ...
- 深入浅出Mybatis系列三-配置详解之properties与environments(mybatis源码篇)
注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(二)---配置简介(mybatis源码篇 ...
- mybatis系列-05-SqlMapConfig.xml详解
mybatis的全局配置文件SqlMapConfig.xml,配置内容如下: properties(属性) settings(全局配置参数) typeAliases(类型别名) typeHandler ...
- mybatis加载配置文件详解
spring整合Mybatis后,SqlSessionFactory的创建由spring进行了代理,以下是SqlSessionFactory创建的流程 SqlSessionFactoryBean: p ...
- Elasticsearch学习系列之配置文件详解
################################### Cluster ################################### #定义集群名称,默认是elasticse ...
- ansible笔记(二)--配置文件详解
配置文件ansible.cfg约有350行语句,大多数为注释行默认配置项.该文件遵循INI格式,分为如下几类配置.(1)[defaults] [defaults] # inventory = /etc ...
- Vue学习系列(二)——组件详解
前言 在上一篇初识Vue核心中,我们已经熟悉了vue的两大核心,理解了Vue的构建方式,通过基本的指令控制DOM,实现提高应用开发效率和可维护性.而这一篇呢,将对Vue视图组件的核心概念进行详细说明. ...
- 2017.2.9 深入浅出MyBatis技术原理与实践-第八章 MyBatis-Spring(二)-----配置文件详解
深入浅出MyBatis技术原理与实践-第八章 MyBatis-Spring(二) ------配置文件详解 8.2 MyBatis-Spring应用 8.2.1 概述 本文主要讲述通过注解配置MyBa ...
随机推荐
- 分布式事务——幂等设计(rocketmq案例)
幂等指的就是执行多次和执行一次的效果相同,主要是为了防止数据重复消费.MQ中为了保证消息的可靠性,生产者发送消息失败(例如网络超时)会触发 "重试机制",它不是生产者重试而是MQ自 ...
- Python基础2——数据类型的操作
列表操作 列表.字符串.元组的切片总结: num=[1, 2, 3, 4, 5, 6] 1.切片是通过下面来切,下标可以正数,也可以是复数.注意:复数的话,最后一个值的下标为-1,往前面推导就是-1, ...
- mplayer - Linux下的电影播放器
概要 mplayer [选项] [ 文件 | URL | 播放列表 | - ] mplayer [全局选项] 文件1 [特定选项] [文件2] [特定选项] mplayer [全局选项] {一组文件和 ...
- Qt项目管理文件(.pro)及其作用详解
http://c.biancheng.net/view/1819.html 在 Qt Creator 中新建一个 Widget Application 项目 samp2_1,在选择窗口基类的页面选择 ...
- Red Hat Enterprise Linux 8.0 安装
Red Hat Enterprise Linux 8.0 安装 本次安装通过使用VMware Workstation 15 pro 进行. 1.新建虚拟机 2.点击首页的创建新的虚拟机,或者点击标签栏 ...
- KeSetEvent
KeSetEvent https://bbs.pediy.com/ dll inject dll注入
- python基础练习题2
01:python九九乘法表 for i in range(1,10): for j in range(1,i+1): print('{}*{}={}'.format(j,i,i*j),end='\t ...
- php iconv函数转换出错问题
本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加). QQ群: 281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29Lo ...
- oracle删除数据文件
在我们详细介绍之前,我们必须说清楚一点:Oracle不提供如删除表.视图一样删除数据文件的方法,数据文件是表空间的一部分,所以不能“移走”表空间. 一.使用offline数据文件的方法 非归档模式使用 ...
- ansible 基础操作
ansible是什么? 可以批量在远程主机上执行命令 准备条件: 1.创建一台环境干净的虚拟机. 2.克隆出三台虚拟机. 3.安装wget: wget -O /etc/yum.repos.d/Cent ...