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 ...
随机推荐
- Dungeon Master (三维bfs)
You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of un ...
- Self-Driving Database
最近一直在做 ML in Database 相关的工作.偶然发现CMU 19spring的15-721课程竟然专门安排了这个专题,不禁欣喜若狂,赶紧去学习了一下. Andy提出了self-drivin ...
- 使用vscode来代替git上传代码到仓库
一.在上传前的注意事项 1. 要配置几个文件: (1)在根目录添加 .gitignore 文件:里面添加一些上传时需要忽略的文件 (2)在根目录添加 README.md 文件,这个用来说明项目的 ...
- Optional接口简记
@Data public class Employee { private String name; } @Data public class Company { private String nam ...
- oracle在没
db_user表中数据: name age nub 张三 13 13 张三 12 12 张三 12 13 张三 12 13 李四 12 12 李四 12 12 查询重复数据(一条) sql:selec ...
- 115-基于TI TMS320DM6467无操作系统Camera Link智能图像分析平台
基于TI TMS320DM6467无操作系统Camera Link智能图像分析平台 1.板卡概述 该板卡是我公司推出的一款具有高可靠性.效率大化.无操作系统的智能视频处理卡,是机器视觉开发上的选. ...
- deletefile 与KILL
1.Kill 语句 从磁盘中删除文件.语法Kill pathname必要的 pathname 参数是用来指定一个文件名的字符串表达式.pathname 可以包含目录或文件夹.以及驱动器.说明在 Mic ...
- web框架-(四)Django进阶之数据库对象关系映射
Django ORM基本配置 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去 ...
- pyhive
from pyhive import hiveimport pandas as pdimport numpy as npclass myhive(): def __init__(self,hos ...
- java课堂测试2
//信1605-2 20163428 刘宏琦import java.util.*;public class Number { /** * @param args */ public void pand ...