9.2.2 properties属性

9.2 深入Mybatis配置文件 9.2.2 properties属性

MyBatis的配置文件包含了影响MyBatis行为的信息。文档的结构如下:

  • 顶层configuration配置
  • properties属性
  • settings设置
  • typeAliases类型命名
  • typeHandlers类型处理器
  • objectFactory对象工厂
  • plugins插件
  • environments环境
  • environment环境变量
  • transactionManager事务管理器
  • dataSource数据源
  • databaseldProvider数据库厂商标识
  • mappers映射器

properties元素

项目结构

G:\Desktop\随书源码\Spring+Mybatis企业应用实战(第2版)\codes\09\DMLTest
├─src
│ ├─db.properties
│ ├─mybatis-config.xml
│ └─省略java代码,省略其他配置
└─WebContent
  ├─省略其他目录
  └─WEB-INF
    ├─lib
    │ ├─省略jar文件
    └─web.xml

这些属性都是可外部配置且可动态替换的,既可以在典型的Java属性文件中配置,亦可通过 properties元素的子元素来传递。

创建自定义properties配置文件

可以在CLASSPATH中增加一个db.properties的属性文件

1
2
3
4
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/mybatis
username=root
password=root

在MyBatis根配置文件中使用上述属性

引入配置文件

1
2
<!-- 引入properties资源文件,以便后面使用 -->
<properties resource="db.properties"/>

使用配置文件中设置好的属性

引入类db.properties后,使用的格式为:

1
${properties配置文件中设置的属性}

例如:使用配置文件db.properties中设置的username属性值

1
2
3
4
<!-- 使用配置文件db.properties中设置的username属性值给该username属性赋值 -->
<property
name="username"
value="${username}"/>

具体如下代码所示:

mybatis-config.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?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">
<!-- XML 配置文件包含对 MyBatis 系统的核心设置 -->
<configuration>
<!-- 引入properties资源文件,以便后面使用 -->
<properties resource="db.properties"/>
<!-- 指定 MyBatis 所用日志的具体实现 -->
<!-- 环境配置,即连接的数据库。 -->
<environments default="mysql">
<environment id="mysql">
<!-- 指定事务管理类型,type="JDBC"指直接简单使用了JDBC的提交和回滚设置 -->
<transactionManager type="JDBC"/>
<!-- dataSource指数据源配置,POOLED是JDBC连接对象的数据源连接池的实现。 -->
<dataSource type="POOLED">
<!-- 使用配置文件db.properties中设置的driver属性值给该driver属性赋值 -->
<property
name="driver"
value="${driver}"/>
<!-- 使用配置文件db.properties中设置的url属性值给该url属性赋值 -->
<property
name="url"
value="${url}"/>
<!-- 使用配置文件db.properties中设置的username属性值给该username属性赋值 -->
<property
name="username"
value="${username}"/>
<!-- 使用配置文件db.properties中设置的password属性值给该password属性赋值 -->
<property
name="password"
value="${password}"/>
</dataSource>
</environment>
</environments>
</configuration>