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实现完整数据访问.输入参数映射与输出 ...
随机推荐
- AcWing:240. 食物链(扩展域并查集 or 带边权并查集)
动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形. A吃B, B吃C,C吃A. 现有N个动物,以1-N编号. 每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种. 有人用 ...
- HTTP之简析
1. 简介 HTTP 协议是 Hyper Text Transfer Protocol(超文本传传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议.HTTP 通常架构在 TCP 传 ...
- RDP连接失败的解决方法
当RDP某一桌面时,远程桌面连接提示:发生身份验证错误,要求的函数不受支持. 解决方法: 打开Run, 输入gpedit.msc,打开组策略编辑器. 如上如所示,修改配置加密Oracle修正策略. E ...
- mysql数据库——特殊sql语句整理之修改表结构
建表 先讲一下常规建表: CREATE TABLE testCreate ( id ) NOT NULL auto_increment, time ) NOT NULL, type ) NOT NUL ...
- 【批处理】ren命令_批量重命名文件
[ren命令] 说明:ren是“rename(重命名)”的简写: 命令:REN [Drive:][path] <old filename> <new filename> 解释: ...
- LC 971. Flip Binary Tree To Match Preorder Traversal
Given a binary tree with N nodes, each node has a different value from {1, ..., N}. A node in this b ...
- vuex中的babel编译mapGetters/mapActions报错解决方法
vex使用...mapActions报错解决办法 vuex2增加了mapGetters和mapActions的方法,借助stage2的Object Rest Operator 所在通过 methods ...
- putty简易教程
和xshell相比,putty除了每次登陆时需要鉴权之外,基本上体验都差不多,由于putty以命令行操作方式为主,因此使用效率上会略高于xshell. 1.下载 下载地址1:(最新版) https:/ ...
- ceph常用命令(3)
1.查看集群配置信息 ceph daemon /var/run/ceph/ceph-mon.$(hostname -s).asok config show 2.在部署节点修改了ceph.conf文件, ...
- 一起学习linux环境的git
第一节 GIT最初是由Linus Benedict Torvalds为了更有效地管理Linux内核开发而创立的分布式版本控制软件,与常用的版本控制工具如CVS.Subversion不同,它不必服务器端 ...