MyBatis学习存档(2)——核心配置文件
一、xml节点结构

configuration为根节点
properties 可以配置在Java 属性配置文件中
settings 修改 MyBatis 在运行时的行为方式
typeAliases 为 Java 类型命名一个别名(简称)
typeHandlers 类型处理器
objectFactory 对象工厂
plugins 插件
environments 环境
environment 环境变量
transactionManager 事务管理器
dataSource 数据源
mappers 映射器
二、各节点作用
2.1 properties节点
配置properties元素有两种方式
通过外部指定的方式(database.properties),实现动态配置
直接通过其子节点property配置,实现动态配置
1、通过外部指定的方式(database.properties),实现动态配置
配置properties的resource属性
<properties resource="database.properties"/>
......
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
2、直接通过其子节点property配置,实现动态配置
<properties>
<property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<property name="url" value="jdbc:sqlserver:///house"/>
<property name="user" value="sa"/>
<property name="password" value=“123"/>
</properties>
......
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
3、若两种方式同时都用了,resource属性值的优先级高于property子节点配置的值
2.2 settings节点
由多个setting节点组成,用来修改MyBatis运行时的行为方式,主要是MyBatis的一些全局配置属性的设置,具体如下:
| 设置项 | 描述 | 允许值 | 默认值 |
| cacheEnabled | 对在此配置文件下的所有cache 进行全局性开/关设置 | true | false | true |
| lazyLoadingEnabled | 全局性设置懒加载。如果设为‘false’,则所有相关联的都会被初始化加载 | true | false | true |
| autoMappingBehavior | MyBatis对于resultMap自动映射匹配级别 | NONE | PARTIAL | FULL | PARTIAL |
| ……(9个) | …… | …… | …… |
2.3 typeAliases节点
类型别名。仅仅只关联XML配置,简写冗长的Java类名
有2种配置方式:
<typeAliases>
<typeAlias alias="Users" type="com.pojo.Users"/>
</typeAliases>
<typeAliases>
<package name ="com.pojo" />
</typeAliases>
2.4 environments节点
表示配置MyBatis的多套运行环境,将SQL映射到多个不同的数据库上
子节点:environment,但是必须指定其中一个为默认运行环境(通过default指定)
虽然可以配置多个运行环境,但是每个SqlSessionFactory 实例只能选择一个运行环境。即:每个数据库对应一个SqlSessionFactory实例
<environments default="development"><!-- 默认的运行环境 ID -->
<environment id="development"><!-- 运行环境 ID -->
<transactionManager type="JDBC"/><!-- 事务管理器配置 -->
<dataSource type="POOLED"><!-- 数据源配置 -->
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
<environment id="test">
……
</environment>
</environments>
其中,transactionManager的可填值为JDBC或者MANAGED(托管),通常使用JDBC
dataSource有三种内建的数据源类型,分别是UNPOOLED | POOLED | JNDI,通常使用POOLED
2.5 mappers节点
用来定义SQL映射语句,须在配置中引用mapper映射文件,配置方式有2种:
方式一:使用类资源路径获取资源
<!-- 将mapper映射文件加入到系统核心配置文件中 -->
<mappers>
<mapper resource="com/mapper/UsersMapper.xml"/>
</mappers>
方式二:使用包名自动获取资源
<mappers>
<package name="com.mapper"/>
</mappers>
MyBatis学习存档(2)——核心配置文件的更多相关文章
- MyBatis学习存档(3)——mapper.xml映射文件
MyBatis 真正的强大在于映射语句,专注于SQL,功能强大,SQL映射的配置却是相当简单 所以我们来看看映射文件的具体结构 一.xml节点结构 mapper为根节点 - namespace命名空间 ...
- MyBatis 的基本要素—核心配置文件
MyBatis 核心配置文件( mybatis-config.xml),该文件配置了 MyBatis 的一些全局信息,包含数据库连接信息和 MyBatis 运行时所需的各种特性,以及设置和影响 MyB ...
- MyBatis学习存档(5)——联表查询
之前的数据库操作都是基于一张表进行操作的,若一次查询涉及到多张表,那该如何进行操作呢? 首先明确联表查询的几个关系,大体可以分为一对一和一对多这两种情况,接下来对这两种情况进行分析: 一.建立表.添加 ...
- MyBatis学习存档(4)——进行CRUD操作
使用MyBatis进行数据库的CRUD操作有2种方式:一种如之前所说的接口+xml,而另一种是通过对接口上的方法加注解(@Select @Insert @Delete @Update) 但是通常情况下 ...
- MyBatis学习存档(1)——入门
一.简介 MyBatis的前身是iBatis,本是Apache的一个开源的项目 MyBatis是一个数据持久层(ORM)框架,把实体类和SQL语句之间建立了映射关系,是一种半自动化的ORM实现 MyB ...
- Mybatis配置解析(核心配置文件)
4.配置解析 4.1.核心配置文件 Mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息 mybatis-config.xml properties(属性)重点 settings ...
- Mybatis笔记02-----MyBatis的核心配置文件以及模糊查询的实现
认识MyBatis核心配置文件mybatis-config.xml 这个文件名是随意可以起,但为了规范一般都命名为mybatis-config.xml:配置文件与MyBatis的行为和属性信息息息相关 ...
- mybatis学习(一)-------XML 映射配置文件详解
XML 映射配置文件 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置(settings)和属性(properties)信息.文档的顶层结构如下: configuration 配 ...
- MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射
在上一章中我们学习了<MyBatis学习总结(一)——ORM概要与MyBatis快速起步>,这一章主要是介绍MyBatis核心配置文件.使用接口+XML实现完整数据访问.输入参数映射与输出 ...
随机推荐
- Nginx反向代理设置header
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- CSS3 新特性
~平时喜欢逛博客,看别人的学习总结和遇到的问题解决办法,恰好最近在做书签整理,翻到了之前一个前辈移动前端的总结,所以我就按他的总结模块对自己的知识进行了梳理,不过由于都是手写的,为了方便,下面的都是平 ...
- LC 638. Shopping Offers
In LeetCode Store, there are some kinds of items to sell. Each item has a price. However, there are ...
- CentOS7 源码安装 PostgreSQL 12
PostgreSQL 12 源码安装 Table of Contents 1. 下载 2. 准备环境 3. 编译安装 4. 设置环境变量 5. 初始化数据库 6. 配置参数文件 6.1. postgr ...
- display:flex 布局详解(2)
1. flex设置元素垂直居中对齐 在之前的一篇文章中记载过如何垂直居中对齐,方法有很多,但是在学习了flex布局之后,垂直居中更加容易实现 HTML代码: <div class=" ...
- Java面试题准备(掌握)
1.使用什么方式进行文件上传? 一般使用FormData对象,ajax异步上传. 为什么使用? 1.FormData对象Mozilla上的介绍的,XMLHttpRequest Level 2添加了一个 ...
- zabbix3.0升级到4.0
升级步鄹: 3.0->3.2 1.停服务 service zabbix-server stop 2.备份配置文件 #cp /etc/zabbix/zabbix_server.conf /data ...
- ETH挖矿
转载声明:http://www.120btc.com/baike/coin/1021.html (仅为了方便自己及原文章被删除) 最近以太坊大涨市值成为仅次比特币的第二大数字货币,那么以太坊(ETH) ...
- 安装neutron
在控制节点上执行 controllerHost='controller' MYSQL_PASSWD='m4r!adbOP' RABBIT_PASSWD='0penstackRMQ' NOVA_PASS ...
- 【JulyEdu-Python基础】第 7 课:Python并发编程以及系统常用模块
主要内容 Python多进程与多线程 Python使用Hadoop分布式计算库mrjob Python使用Spark分布式计算库PySpark 例子:分别使用MapReduce和Spark实现word ...