MyBatis基础入门《五》核心配置文件
MyBatis基础入门《五》核心配置文件
描述:
在前面的章节中,简单的学习使用了一下mybatis,对于配置文件没有过多详细说明。
这里先描述项目中的一个核心配置文件:mybatis-config.xml 文件。
资料参考:http://www.mybatis.org/mybatis-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> <!-- 可以配置在java属性配置文件中 -->
<properties></properties> <!-- 修改MyBatis在运行时的行为方式 -->
<settings></settings> <!-- 为java类命令一个别名(简称) -->
<typeAliases></typeAliases> <!-- 类型处理器 -->
<typeHandlers></typeHandlers> <!-- 对象工厂 -->
<objectFactory type=""></objectFactory> <!-- 插件 -->
<plugins></plugins> <!-- 环境 -->
<environments default=""> <!-- 环境变量 -->
<environment id=""> <!-- 配置事物管理器 -->
<transactionManager type=""></transactionManager>
<!-- 配置数据源 -->
<dataSource type=""></dataSource> </environment> </environments> <!-- 映射器 -->
<mappers></mappers> </configuration>
注意:
上面的这个配置文件中的标签,在书写的时候必须要按照这个顺序,不然Mybatis在解析这个文件的时候,会报错的。
<properties></properties>
>>> 配置properties元素的两种方式
1. 通过外部指定的方式(database.properties),实现动态配置
> 配置properties的resource属性

前面章节中使用是这种方式,在位置1处,进行外部引入。然后在位置2处使用。
2. 直接配置为xml,实现动态配置
> properties 的name和value

properties问题:
1. 若两种方式同时都用了,那么哪种方式优先?
> 配置properties的resource指定
> 配置property的name和value

测试方式:
1. 修改标签property的value属性值,运行查询测试方法,可以正常执行。
2. 恢复被修改的property标签的value属性值,然后修改database.properties文件中的数据,在运行查询测试方法,程序抛出异常错误。
结论: resource属性值的优先级高于property子节点配置的值。
<settings></settings>
1. 用来修改MyBatis运行时的行为方式
2. 主要是MyBatis的一些全局配置属性的设置
例如:配置一个延迟加载

<typeAliases></typeAliases>
1. 用来修改类型别名
2. 仅仅只关联XML配置,简写冗长的java名,用法见:《MyBatis基础入门《三》Select查询集合》 select查询方式3

<environments></environments>
1. 表示配置MyBatis的多套运行环境,将SQL映射到多个不同的数据库上
2. 子元素节点:environment,但是必须指定其中一个为默认运行环境(通过default指定)

<transactionManager></transactionManager> 事物管理器
<transactionManager type = "[ JDBC | MANAGED]" />
jdbc | managed 托管
<dataSource></dataSource>
>>> dataSource元素使用的基本的JDBC数据源接口来配置JDBC连接对象的资源
>>> 有三种内建的数据源类型
<dataSource type="[ UNPOOLED | POOLED | JNDI ]" />
<mappers></mappers>
1. 映射器,定义SQL映射语句
2. 须在配置中引用Mapper映射文件

... ...
如有问题,欢迎纠正!!!
如有转载,请标明源处:https://www.cnblogs.com/Charles-Yuan/p/9862302.html
参考资料:http://www.mybatis.org/mybatis-3/zh/configuration.html
MyBatis基础入门《五》核心配置文件的更多相关文章
- MyBatis基础入门《十五》ResultMap子元素(collection)
MyBatis基础入门<十五>ResultMap子元素(collection) 描述: 见<MyBatis基础入门<十四>ResultMap子元素(association ...
- Mybatis基础入门学习
Mybatis基础入门学习 mybatis架构分析 搭建测试mybatis架构 )下载并导入mybatis3.2.7.jar(架构),mysql-connector-java-5.1.7-bin.ja ...
- MyBatis基础入门《十七》动态SQL
MyBatis基础入门<十七>动态SQL 描述: >> 完成多条件查询等逻辑实现 >> 用于实现动态SQL的元素主要有: > if > trim > ...
- MyBatis基础入门《三》Select查询集合
MyBatis基础入门<三>Select查询集合 描述: 代码新增了一个MybatisUtil工具类,查询数据库返回集合的时候,接收数据的三种方式.由于代码会渐渐增多,未涉及改动过的文件不 ...
- MyBatis基础入门《二》Select查询
MyBatis基础入门<二>Select查询 使用MySQL数据库,创建表: SET NAMES utf8mb4; ; -- ---------------------------- -- ...
- MyBatis基础入门
1.MyBatis概述 MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动.创建connection.创 ...
- MyBatis基础入门《二十》动态SQL(foreach)
MyBatis基础入门<二十>动态SQL(foreach) 1. 迭代一个集合,通常用于in条件 2. 属性 > item > index > collection : ...
- MyBatis基础入门《十九》动态SQL(set,trim)
MyBatis基础入门<十九>动态SQL(set,trim) 描述: 1. 问题 : 更新用户表数据时,若某个参数为null时,会导致更新错误 2. 分析: 正确结果: 若某个参数为nul ...
- MyBatis基础入门《十八》动态SQL(if-where)
MyBatis基础入门<十八>动态SQL(if-where) 描述: 代码是在<MyBatis基础入门<十七>动态SQL>基础上进行改造的,不再贴所有代码,仅贴改动 ...
随机推荐
- [No0000B5]C# 类型基础 值类型和引用类型 及其 对象判等 深入研究1
引言 本文之初的目的是讲述设计模式中的 Prototype(原型)模式,但是如果想较清楚地弄明白这个模式,需要了解对象克隆(Object Clone),Clone其实也就是对象复制.复制又分为了浅度复 ...
- Python:多线程
据廖雪峰老师的学习文档介绍,高级语言通常都内置多线程的支持,Python也不例外,并且,Python的线程是真正的Posix Thread,而不是模拟出来的线程. Python的标准库提供了两个模块: ...
- esxi导出ovf模板注意事项
1.网卡配置文件注释掉MAC地址 2.编辑设置,CD/DVD选择客户端设备
- In abstract algebra, a congruence relation (or simply congruence) is an equivalence relation on an algebraic structure (such as a group, ring, or vector space) that is compatible with the structure in
https://en.wikipedia.org/wiki/Congruence_relation In abstract algebra, a congruence relation (or sim ...
- Chap1 引言[The Linux Command Line]
附上链接:http://billie66.github.io/TLCL/book/chap01.html Content: part1-Introduction part2-Learning The ...
- cocoapod引入FLEX,debug模式正常,Release报错library not found for -lXXX
cocoapod引入FLEX,debug模式正常,Release报错library not found for -lXXX, 因为podfile是这么写的: pod 'FLEX', '~> 2. ...
- 内部排序->插入排序->直接插入排序
文字描述: 将一个记录插入到已排好序的有序表中,从而得到一个新的.记录数增1的有序表 示意图: 算法分析: 时间复杂度为n*n,辅助存储为1,是稳定的排序方法. 代码实现: #include < ...
- Win7 开机自动启动Outlook2010
工作中,设置一些开机启动项,可以提供工作效率,下面演示设置Outlook2010在win7系统开机自启动,其它软件,如Eclipse.微信等,也可以这么配置. 环境: win7,outlook 201 ...
- kmeans笔记
1.算法过程 a.随机选取k个初始点作为中心点 b.依次计算剩余所有点分别与哪个初始点距离较近,则该点属于哪个簇 c.移动中心点到现在的簇的中心 d.重复b,c两步,直到中心点不再变化算法结束 2.优 ...
- MySQL安装失败解决的方法
一..msi版的MySQL安装包在最后执行的时候到第三步就死掉了,直接未响应 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd19iYXNrZXRib3ky ...