在全集配置文件中引入dtd约束“http://mybatis.org/dtd/mybatis-3-config.dtd”,主要有以下几个标签,现在详细解释下这几个标签的使用

1、properties属性----引入外部properties配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 1、mybatis使用properties来引入外部properties配置文件的内容
resource 引入类路径下资源
url 引入网络路径或磁盘路径下资源 -->
<properties resource="db.properties"></properties> <environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.name}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/pjf/mybatis/mapper/hotelMapper.xml"></mapper>
</mappers>
</configuration>

db.properties文件

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/spring_mybatis
jdbc.name=root
jdbc.password=tuniu520

相当有之前写的,这里的jdbc连接信息写在datasource中的property属性下,没有引入外部配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/spring_mybatis" />
<property name="username" value="root" />
<property name="password" value="tuniu520" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/pjf/mybatis/mapper/hotelMapper.xml"></mapper>
</mappers>
</configuration>

2、settings 运行时行为设置

可查看mybatis文档,settings有很多配置项,如

这里试验下mapUnderscoreToCamelCase,可以自动完成hotelName到数据库中字段hotel_name的转换

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 1、mybatis使用properties来引入外部properties配置文件的内容
resource 引入类路径下资源
url 引入网络路径或磁盘路径下资源 -->
<properties resource="db.properties"></properties>
<!-- 2、settings包含很多重要的设置项
setting标识具体的设置项
name表示设置项的名字
value表示设置项的值
-->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.name}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/pjf/mybatis/mapper/hotelMapper.xml"></mapper>
</mappers>
</configuration>

之前写的sql语句可以直接修改成

<select id="getHotel" resultType="com.pjf.mybatis.po.Hotel">
select id,hotel_name as hotelName, hotel_address as hotelAddress, price from hotel
where id=#{id}
</select>

修改为
<select id="getHotel" resultType="com.pjf.mybatis.po.Hotel">
select * from hotel where id=#{id}
</select>

mybatis会自动完成驼峰转换

3、typeAliases别名配置

查看代码中3的注解

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration> <!-- 1、mybatis使用properties来引入外部properties配置文件的内容
resource 引入类路径下资源
url 引入网络路径或磁盘路径下资源 -->
<properties resource="db.properties"></properties> <!-- 2、settings包含很多重要的设置项
setting标识具体的设置项
name表示设置项的名字
value表示设置项的值 -->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings> <!-- 3、typeAliases 为java类型起别名,别名不区分大小写
typeAlias 为某个具体的java类型取别名
type java类的全类名,默认别名就是类名小写
alias 自定义别名 -->
<typeAliases>
<typeAlias type="com.pjf.mybatis.po.Hotel" alias="hotel" />
<!-- package为某个包下面所有类批量起别名
name 表示包的名称 默认别名为类名小写
这里重复配置了Hotel类,复制的时候注掉一种配置-->
<package name="com.pjf.mybatis.po" />
</typeAliases> <environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.name}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/pjf/mybatis/mapper/hotelMapper.xml"></mapper>
</mappers>
</configuration>

已经为许多常见的 Java 类型内建了相应的类型别名。它们都是大小写不敏感的,需要注意的是由基本类型名称重复导致的特殊处理,8种基本数据类型类型别名是下划线加数据类型。

4、typeHandlers 类型处理器

将java中的类型和数据库中的类型进行映射

<!-- typeHandlers 类型处理器
mybatis3.4之后,这些类型处理器都是自动注册的
-->
<typeHandlers>
<typeHandler handler="BooleanTypeHandler"/>
</typeHandlers>

可以填写以下处理器

5、environments环境配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration> <!-- 1、mybatis使用properties来引入外部properties配置文件的内容
resource 引入类路径下资源
url 引入网络路径或磁盘路径下资源 -->
<properties resource="db.properties"></properties> <!-- 2、settings包含很多重要的设置项
setting标识具体的设置项
name表示设置项的名字
value表示设置项的值 -->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings> <!-- 3、typeAliases 为java类型起别名,别名不区分大小写
typeAlias 为某个具体的java类型取别名
type java类的全类名,默认别名就是类名小写
alias 自定义别名 -->
<typeAliases>
<typeAlias type="com.pjf.mybatis.po.Hotel" alias="hotel" />
<!-- package为某个包下面所有类批量起别名
name 表示包的名称 默认别名为类名小写
<package name="com.pjf.mybatis.po" />
-->
</typeAliases> <!-- 4、typeHandlers 类型处理器-->
<typeHandlers>
<typeHandler handler=""/>
</typeHandlers> <!-- 5、environments环境配置,可以配置多种环境 default指定使用某种环境,可以达到快速切换
environment配置一个具体的环境信息,必须有如下两个标签,id表示当前环境的唯一标识
transactionManager 事物管理器
type 事物管理器的类型 有两种取值
JDBC
managed
dataSource 数据源
type 有三种[UNPOOLED|POOLED|JNDI]
-->
<environments default="development">
<environment id="test">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.name}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment> <environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.name}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments> <mappers>
<mapper resource="com/pjf/mybatis/mapper/hotelMapper.xml"></mapper>
</mappers>
</configuration>

6、mappers  sql映射文件注册

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration> <!-- 1、mybatis使用properties来引入外部properties配置文件的内容
resource 引入类路径下资源
url 引入网络路径或磁盘路径下资源 -->
<properties resource="db.properties"></properties> <!-- 2、settings包含很多重要的设置项
setting标识具体的设置项
name表示设置项的名字
value表示设置项的值 -->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings> <!-- 3、typeAliases 为java类型起别名,别名不区分大小写
typeAlias 为某个具体的java类型取别名
type java类的全类名,默认别名就是类名小写
alias 自定义别名 -->
<typeAliases>
<typeAlias type="com.pjf.mybatis.po.Hotel" alias="hotel" />
<!-- package为某个包下面所有类批量起别名
name 表示包的名称 默认别名为类名小写
<package name="com.pjf.mybatis.po" />
-->
</typeAliases> <!-- 4、typeHandlers 类型处理器-->
<typeHandlers>
<typeHandler handler=""/>
</typeHandlers> <!-- 5、environments环境配置,可以配置多种环境 default指定使用某种环境,可以达到快速切换
environment配置一个具体的环境信息,必须有如下两个标签,id表示当前环境的唯一标识
transactionManager 事物管理器
type 事物管理器的类型 有两种取值
JDBC
managed
dataSource 数据源
type 有三种[UNPOOLED|POOLED|JNDI]
-->
<environments default="development">
<environment id="test">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.name}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment> <environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.name}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments> <!--6、 mappers将sql映射注册到全局配置文件中
mapper注册一个sql映射
1、注册配置文件
resource引用类路径下文件
url 引用网络上或磁盘路径下文件
2、注册mapper接口
class 有映射文件,接口和映射文件必须同名,而且放在同一个路径里
如果没有映射文件,sql语句使用注解的方式,就需要注册接口了
3、package批量注册
使用批量注册, 接口和映射文件必须同名,而且放在同一个路径里
-->
<mappers>
<mapper resource="com/pjf/mybatis/mapper/hotelMapper.xml"></mapper>
<mapper class=""/>
<package name="com.pjf.mybatis.po"/>
</mappers>
</configuration>

7、databaseIdProvider多数据库支持

MyBatis 可以根据不同的数据库厂商执行不同的语句,这种多厂商的支持是基于映射语句中的 databaseId 属性。 MyBatis 会加载不带 databaseId 属性和带有匹配当前数据库 databaseId 属性的所有语句。 如果同时找到带有 databaseId 和不带 databaseId 的相同语句,则后者会被舍弃。

<databaseIdProvider type="DB_VENDOR"></databaseIdProvider>

8、plugins 插件

MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。

<plugins>
<plugin interceptor=""></plugin>
</plugins>

注:这些标签编写是有先后顺序的,可以吧鼠标放在configuration上,就可以看到顺序了

(properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)

mybatis学习(四)——config全局配置文件解析的更多相关文章

  1. Spring+SpringMVC+MyBatis深入学习及搭建(三)——MyBatis全局配置文件解析

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6874672.html 前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(二)——My ...

  2. Mybatis学习总结(三)——SqlMapConfig.xml全局配置文件解析

    经过上两篇博文的总结,对mybatis中的dao开发方法和流程基本掌握了,这一节主要来总结一下mybatis中的全局配置文件SqlMapConfig.xml在开发中的一些常用配置,首先看一下该全局配置 ...

  3. Java数据持久层框架 MyBatis之API学习四(xml配置文件详解)

    摘录网址: http://blog.csdn.net/u010107350/article/details/51292500 对于MyBatis的学习而言,最好去MyBatis的官方文档:http:/ ...

  4. springboot学习入门之二---配置文件解析

    2springboot配置文件解析 2.1application.properties配置文件 使用application.properties全局配置文件(位置为src/main/resources ...

  5. Mybatis笔记三:全局配置文件

    目录 配置文件 dtd提示 properties标签(不怎么用) typeAliases 自动把下划线换成驼峰命名 配置文件 看着这个配置文件,我们将对这个配置文件进行细致的讲解 <?xml v ...

  6. [02] mybatis-config.xml 全局配置文件解析

    本篇会摘录mybatis全局配置文件中比较常见常用的一些配置进行说明,其实官方文档已经写得足够清晰了(关键是还有中文版完全不慌),此处记录重要还是作为个人的巩固记录. 1.properties 在全局 ...

  7. ibatis源码学习2_初始化和配置文件解析

    问题在详细介绍ibatis初始化过程之前,让我们先来思考几个问题. 1. ibatis初始化的目标是什么?上文中提到过,ibatis初始化的核心目标是构造SqlMapClientImpl对象,主要是其 ...

  8. Mybatis之旅第三篇-SqlMapConfig.xml全局配置文件解析

    一.前言 刚换工作,为了更快的学习框架和了解业务,基本每天都会加班,导致隔了几天没有进行总结,心里总觉得不安,工作年限越长越感到学习的重要性,坚持下去!!! 经过前两篇的总结,已经基本掌握了mybat ...

  9. mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析

    一:SqlMapConfig.xml配置文件的内容和配置顺序如下 properties(属性) settings(全局配置参数) typeAiases(类型别名) typeHandlers(类型处理器 ...

随机推荐

  1. Git和SVN的5个基本区别

    如果你在读这篇文章,说明你跟大多数开发者一样对GIT感兴趣,如果你还没有机会来试一试GIT,我想现在你就要了解它了. GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等.如果 ...

  2. 深度技术GHOST WIN7系统32,64位旗舰稳定版

    系统来自系统妈:http://www.xitongma.com 系统概述 深度技术ghost win8 X86(32位)旗舰稳定版系统集成了SATA/RAID/SCSI驱动,支持P45. MCP78. ...

  3. 洛谷 P2353 背单词

    题目背景 小明对英语一窍不通,令老师十分头疼.于是期末考试前夕,小明被逼着开始背单词…… 题目描述 老师给了小明一篇长度为N的英语文章,然后让小明背M个单词.为了确保小明不会在背单词时睡着,老师会向他 ...

  4. 添加/删除 windows下Git右键菜单

    从网上搜索了些方法,总结一下 不显示右键菜单: 方法1: 安装的时候选择不添加右键菜单. 方法2(绝对有效): 运行CMD Windows 64 输入命令(地址为git安装地址) cd "C ...

  5. SAP成都研究院郑晓霞:Shift Left Testing和软件质量保证的一些思考

    今天的文章来自Jerry的同事,曾经的搭档郑晓霞(Zheng Kate).郑晓霞是在Jerry心中是一位很有实力的程序媛,2011年从西安某软件公司跳槽到SAP成都研究院.当时,成都研究院的CRM团队 ...

  6. CSS BEM 命名规范简介

    [前言] BEM 是一个简单又非常有用的命名约定.让你的前端代码更容易阅读和理解,更容易协作,更容易控制,更加健壮和明确,而且更加严密.这篇文章主要介绍了CSS BEM 命名规范简介(推荐)的相关资料 ...

  7. iOS 第三方类库之MBProgressHUD

    github链接地址 MBProgressHUD是一个开源的第三方类库实现了很多种样式的提示框,类似Activity indicator,使用上简单.方便,并且可以对显示的内容进行自定义,功能很强大, ...

  8. 组合的输出(DFS)

    题目描述: 排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r<=n),我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数. 现要求你用递归的方法输出 ...

  9. MySQL的索引知识

    一.什么是索引. 索引是用来加速查询的技术的选择之一,在通常情况下,造成查询速度差异 的因素就是索引是否使用得当.当我们没有对数据表的某一字段段或者多个 字段添加索引时,实际上执行的全表扫描操作,效率 ...

  10. 【Linux】启动Tomcat遇到Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

    找不到JAVA_HOME路径,需要做以下变更: 找到启动路径所在的目录: cd bin/ vi catalina.sh 加入以下信息: export JAVA_HOME=/home/gongzi/ht ...