本文会详细介绍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. Springboot 打jar包项目无法访问jsp问题解决方案

    maven编译插件,请选择1.4.2.RELEASE版本,1.5.x的版本已经不再支持 pom.xml重要部分如下: <build> <resources> <resou ...

  2. 百度网盘SVIP不限速Mac破解版(亲测可用)

    百度网盘SVIP不限速Mac破解版(亲测可用),按照教程一步一步来就可以了,链接如下: https://mac.orsoon.com/Mac/166358.html?id=ODY0MDA2Jl8mMT ...

  3. 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 找不到资源 ...

  4. PC端网站微信扫码登录

    需求分析:用户通过扫描我们网页的二维码,如果已经绑定我们平台的账户,即成功进入首页,否则提示先绑定个人微信账号. 1.绑定微信账号:是通过关注微信公众号实现绑定个人微信账号.首先通过后台接口获取到ti ...

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

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

  6. 【学习】013 Servlet、Cookie、Session的简述

    Servlet核心内容 Sevlet的生命周期(重点) Servlet重要的四个生命周期方法 构造方法: 创建servlet对象的时候调用.默认情况下,第一次访问servlet的时候创建servlet ...

  7. 〇——什么是SHELL

    在这段时间里中我们了解一下SHELL编程. 什么是shell shell是Linux的命令解释器,用于解释用户对操作系统的操作. 用shell解释的Linux命令有很多,可以通过cat/etc/she ...

  8. webpack 零基础到工程实战(1)

    webpack resolve:resolve 配置是帮助 webpack 查找依赖模块resolve.alias 是最常用的配置,通过设置 alias 可以帮助 webpack 更快查找模块依赖,而 ...

  9. @transactional注解在什么情况下会失效,为什么?

    一,特性: 1,一般在service里加@Transactional注解,不建议在接口上添加,加了此注解后此类会纳入spring事务管理中,每个业务方法执行时,都会开启一个事务,不过都是按照相同的管理 ...

  10. 借助tcpdump统计http请求

    借助tcpdump统计http请求     这里所说的统计http请求,是指统计QPS(每秒请求数),统计前十条被访问最多的url.一般做这样的统计时,我们经常会使用网站访问日志来统计.当我们来到一个 ...