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 ...
随机推荐
- Springboot 打jar包项目无法访问jsp问题解决方案
maven编译插件,请选择1.4.2.RELEASE版本,1.5.x的版本已经不再支持 pom.xml重要部分如下: <build> <resources> <resou ...
- 百度网盘SVIP不限速Mac破解版(亲测可用)
百度网盘SVIP不限速Mac破解版(亲测可用),按照教程一步一步来就可以了,链接如下: https://mac.orsoon.com/Mac/166358.html?id=ODY0MDA2Jl8mMT ...
- 2019-11-28-win10-uwp-提示-Cannot-find-a-Resource-with-the-Name-Key-找不到资源
title author date CreateTime categories win10 uwp 提示 Cannot find a Resource with the Name Key 找不到资源 ...
- PC端网站微信扫码登录
需求分析:用户通过扫描我们网页的二维码,如果已经绑定我们平台的账户,即成功进入首页,否则提示先绑定个人微信账号. 1.绑定微信账号:是通过关注微信公众号实现绑定个人微信账号.首先通过后台接口获取到ti ...
- Linux日常之以当前时间命名文件
要求:将当前硬件信息的内容统一以一个文件的形式写入目录date中,且该文件是以“cpu_当前时间.txt”方式命名: 实现该要求主要理解三方面: (1) 显示当前硬件信息的命令:lscpu (2 ...
- 【学习】013 Servlet、Cookie、Session的简述
Servlet核心内容 Sevlet的生命周期(重点) Servlet重要的四个生命周期方法 构造方法: 创建servlet对象的时候调用.默认情况下,第一次访问servlet的时候创建servlet ...
- 〇——什么是SHELL
在这段时间里中我们了解一下SHELL编程. 什么是shell shell是Linux的命令解释器,用于解释用户对操作系统的操作. 用shell解释的Linux命令有很多,可以通过cat/etc/she ...
- webpack 零基础到工程实战(1)
webpack resolve:resolve 配置是帮助 webpack 查找依赖模块resolve.alias 是最常用的配置,通过设置 alias 可以帮助 webpack 更快查找模块依赖,而 ...
- @transactional注解在什么情况下会失效,为什么?
一,特性: 1,一般在service里加@Transactional注解,不建议在接口上添加,加了此注解后此类会纳入spring事务管理中,每个业务方法执行时,都会开启一个事务,不过都是按照相同的管理 ...
- 借助tcpdump统计http请求
借助tcpdump统计http请求 这里所说的统计http请求,是指统计QPS(每秒请求数),统计前十条被访问最多的url.一般做这样的统计时,我们经常会使用网站访问日志来统计.当我们来到一个 ...