MyBatis配置文件解析
MyBatis配置文件解析(概要)
1.configuration:根元素
1.1 properties:定义配置外在化
1.2 settings:一些全局性的配置
1.3 typeAliases:为一些类定义别名
1.4 typeHandlers:定义类型处理,也就是定义JAVA类型与数据库中的数据类型之间的转换关系
1.5 objectFactory
1.6 plugins:mybatis插件,插件可以修改MyBatis内部运行规则
1.7 environments:配置Mybatis的环境
1.7.1 enveronment
1.7.1.1 transactionManager:事务管理器
1.7.1.2 datasource:数据源
1.8 databaseIdProvider
1.9 mappers:指定映射文件或映射类
这里我们重要介绍transactionManager和datasoruce的type取值
transactionManager:
type取值范围:
JDBC:简单的使用JDBC的提交和回滚设置,一览与从数据员得到的链接来管理事务范围
MANAGED:这个配置几乎什么都没做,它从来不提交或回滚一个链接,而它让容器来管理事务的整个生命周期(比如spring、jee应用服务器的上下文)
在默认情况下,MANAGED会关闭连接,如果有时候不希望这样时,可以从连接中停止它,将claseConnection属性设置为false:
<transactionManager type="MANAGED"> <property name="closeConnection" value="false"/> </transactionManager>
dataSource:
type取值范围:
UNPOOLED:这个数据源的实现是每次被请求时打开和关闭连接。速度会有一些慢,适用于简单的应用程序。
这种类型的数据源只需要配置下面的6种属性(最后一项为可选):
| driver | JDBC驱动名 |
| url | JDBC URL地址 |
| username | 数据库用户名 |
| password | 数据库密码 |
| defaultTransactionIsolationLevel | 默认的链接事务隔离级别 |
| driver.encoding | utf-8(可选项) |
POOLED:这是JDBC链接对象的数据源连接池的实现,用来避免创建新的链接实例时必要的连接和认证时间。适用于当前Web应用程序用来快速响应请求
这种类型的数据源除了需要配置UNPOOLED中的基础配置外,还可以配置下面的内容:
| poolMaximumActiveConnections | 在任意时间正在使用链接的数量 |
| poolMaximumIdleConnections | 任意时间存在的空闲连接数 |
| poolMaximumCheckoutTime | 在被强制返回之前,连接池中被检查的时间,默认值为20000毫秒 |
| poolTimeToWait | 给连接池一个打印日志状态机会的低层次设置,还有重新尝试获取连接,这些情况往往会需要很长时间。为了避免连接池没有配置时静默失败。默认值20000毫秒 |
| poolPingQuery | 发送到数据的侦测查询,用来验证连接是否正常工作,并且准备接受请求。默认为“NO PING QUERY SET”,这会引起许多数据库驱动连接由一个错误信息而导致失败 |
| poolPingEnabled | 这是开启或禁用侦测查询,如果开启,必须用一个合法的SQL语句,设置poolPingQuery属性,默认值为false |
| poolPingConnectionsNotUsedFor | 用来配置poolPingQuery多长时间被调用一次。可以被设置匹配标准的数据库链接超时时间,来避免不必要的侦测。默认值0(也就是所有链接每一时刻都被侦测到,但仅仅当poolPingEnabled为true时适用)。 |
JNDI:这个数据源是为了使用如Spring或应用服务器这类的容器,容器可以集中或在外部配置数据源,然后设置JNDI上下文的引用。
这个数据源只需要配置两个属性:
| initial_context | 用来从初始上下文中寻找环境(也就是initialContext.lookup(initial——context)),这是个可选属性,如果被忽略,那么data_source属性将直接以initialContext为背景再次寻找 |
| data_source | 这是引用数据源实例位置的上下文的路径,它会以initial_context查询返回的环境为背景来查找,如果initial_context没有返回结果时,直接以初始上下文为环境来查找。 |
和其他数据源配置类似,他可以通过名“env.”的前缀来直接向初始上下文发送属性,比如:
env.encoding=UTF8
MyBatis配置文件解析的更多相关文章
- MyBatis 源码分析 - 配置文件解析过程
* 本文速览 由于本篇文章篇幅比较大,所以这里拿出一节对本文进行快速概括.本篇文章对 MyBatis 配置文件中常用配置的解析过程进行了较为详细的介绍和分析,包括但不限于settings,typeAl ...
- MyBatis配置解析
MyBatis配置文件解析(概要) 1.configuration:根元素 1.1 properties:定义配置外在化 1.2 settings:一些全局性的配置 1.3 typeAliases:为 ...
- mybatis源码分析之02配置文件解析
该篇正式开始学习mybatis的源码,本篇主要学习mybatis是如何加载配置文件mybatis-config.xml的, 先从测试代码入手. public class V1Test { public ...
- mybatis源码配置文件解析之二:解析settings标签
在前边的博客中分析了mybatis解析properties标签,<mybatis源码配置文件解析之一:解析properties标签>.下面来看解析settings标签的过程. 一.概述 在 ...
- mybatis源码配置文件解析之三:解析typeAliases标签
在前边的博客在分析了mybatis解析settings标签,<mybatis源码配置文件解析之二:解析settings标签>.下面来看解析typeAliases标签的过程. 一.概述 在m ...
- mybatis源码配置文件解析之五:解析mappers标签(解析XML映射文件)
在上篇文章中分析了mybatis解析<mappers>标签,<mybatis源码配置文件解析之五:解析mappers标签>重点分析了如何解析<mappers>标签中 ...
- mybatis源码配置文件解析之五:解析mappers标签
在上篇博客中分析了plugins标签,<mybatis源码配置文件解析之四:解析plugins标签>,了解了其使用方式及背后的原理.现在来分析<mappers>标签. 一.概述 ...
- mybatis源码配置文件解析之四:解析plugins标签
在前边的博客在分析了mybatis解析typeAliases标签,<mybatis源码配置文件解析之三:解析typeAliases标签>.下面来看解析plugins标签的过程. 一.概述 ...
- myBatis源码解析-配置文件解析(6)
前言 本来打算此次写一篇关于SqlSession的解析,但发现SqlSession涉及的知识太多.所以先结合mybatis配置文件(我们项目中常写的如mybatisConfig.xml),来分析下my ...
随机推荐
- 通过组策略实现Firefox自动以当前域账号登录MOSS站点---(原创)
忘忧草原创,转发请保留本人的大名,谢谢,如果需要文档的请找我索取 前言 通过组策略实现基于AD的windows验证的sharepoint站点在火狐下自动以当前域账号登录. 操作步骤-在服务器添加策略工 ...
- Wifite.py 修正版脚本代码
Kali2.0系统自带的WiFite脚本代码中有几行错误,以下是修正后的代码: #!/usr/bin/python # -*- coding: utf-8 -*- """ ...
- Android Animation学习(六) View Animation介绍
Android Animation学习(六) View Animation介绍 View Animation View animation系统可以用来执行View上的Tween animation和F ...
- RxJava 和 RxAndroid 五(线程调度)
对rxJava不了解的同学可以先看 RxJava 和 RxAndroid 一 (基础)RxJava 和 RxAndroid 二(操作符的使用)RxJava 和 RxAndroid 三(生命周期控制和内 ...
- [UITableView _endCellAnimationsWithContext:]
由于项目需要,做一个UITableView来实现删除功能. 1.TableView是分组的. 2.点击删除按钮后,某行被删除. 出现:[UITableView _endCellAnimat ...
- 【代码笔记】iOS-点评内容
一,效果图. 二,工程图. 三,代码. ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIVie ...
- UIButton、UILabel、UITextField 初学者需要了解的基本定义和常用设置
以下是三个IOS开发中最常用的控件,作为IOS基础学习教程知识 ,初学者需要了解其基本定义和常用设置,以便在开发在熟练运用. UIButton按钮 第一.UIButton的定义 UIButton * ...
- 使用 PHPMailer 发送邮件
转载 http://blog.csdn.net/liruxing1715/article/details/7914974 PHPMailer 的官方网站:http://phpmailer.worxwa ...
- yii2 GridView 下拉搜索实现案例教程
作者:白狼 出处:http://www.manks.top/article/yii2_gridview_dropdown_search本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章 ...
- FATAL ERROR: Could not find ./bin/my_print_defaults的解决办法
对mysql数据库初始化过程中,会有如下报错信息: 1 2 3 4 5 6 7 [root@localhost scripts]# ./mysql_install_db --user=mysql FA ...