持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第27天
Mybatis核心配置文件解读——environments
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://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.cj.jdbc.Driver"/>
<!--temp替换成你自己的数据库名称-->
<property name="url" value="jdbc:mysql://localhost:3306/temp?serverTimezone=UTC&useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="hexing"/>
</dataSource>
</environment>
</environments>
<mappers>
</mappers>
</configuration>
-
environments: 看后面有s,用来包含多个environment标签,包含多个使用环境,在使用时可选择其中一个配置使用
-
environments内的default: 设置默认使用的环境,也就是下面对应id的environment标签配置的环境
<environments default="development">
-
-
environments内的environment: 配置一种使用环境
-
id: 唯一标识对应的的环境
<environment id="development"> -
environment内的transactionManager: 设置事务管理方式
-
属性: type="JDBC或MANAGED"
-
JDBC表示当前环境中,执行SQL时,使用的是JDBC中原生的事务管理方式,事务的提交和回滚需要手动来处理
-
MANAGED表示被管理,例如Spring
<transactionManager type="JDBC"/>
-
-
-
environments内的dataSource: 配置数据源信息
-
属性: type="POOLED或UNPOOLED或JNDI"
-
POOLED表示使用数据库连接池缓存数据库连接
-
UNPOOLED与POOLED相对,表示不适用数据库连接池缓存数据库连接
-
JNDI表示使用上下文中的数据源
<dataSource type="POOLED">
-
-
dataSource中的property: 设置连接数据库的各项参数
-
属性: name="driver或url或username或password"
- 四个值分别对应 数据库驱动、数据库连接地址、数据库用户名、数据库密码
-
属性: value="根据上述对应的name分别写 驱动全类名、数据库连接地址、数据库用户名、数据库密码"
<property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/temp?serverTimezone=UTC&useSSL=false"/> <property name="username" value="root"/> <property name="password" value="hexing"/>
-
-
-
以上是environments配置,我们可以将property抽出,单独放到一个文件中保存
在resource文件夹下创建Resource Bundle文件,这样创建出来的文件后缀默认是properties,用于存放多个property的信息:
driver="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://localhost:3306/temp?serverTimezone=UTC&useSSL=false"
username="root"
password="hexing"
但为了防止重名问题,我们可以为参数添加前缀
jdbc.driver="com.mysql.cj.jdbc.Driver"
jdbc.url="jdbc:mysql://localhost:3306/temp?serverTimezone=UTC&useSSL=false"
jdbc.username="root"
jdbc.password="hexing"
配置信息抽出后,我们就可以在配置文件中引入properties文件,方式是在environments外层,与其同级处添加标签进行引入
<configuration>
<properties resource='jdbc.properties'/>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!--四个property的value换成${键名}的形式-->
<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>
</environments>
<mappers>
</mappers>
</configuration>