需求
将数据库连接参数单独配置在 db.properties 文件中,只需要在 Configuration.xml (mybatis 全局配置文件)加载 db.properties 的属性值。
在 Configuration.xml 中就不需要对数据库连接参数硬编码。
将数据库连接参数只配置在 db.properties 中,原因:方便对参数进行统一管理,其他 xml 可以引用该 db.properties 文件 。
代码实现
1、在xml 文件同级目录新建 db.properties
- jdbc.driver=com.mysql.jdbc.Driver
- jdbc.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8
- jdbc.username=root
- jdbc.password=
注意:属性值不用加引号,因为我们 Configuration.xml 里已经添加了引号。 我的MySQL的密码为空。
2、Configuration.xml Mybatis 全局配置文件
- <?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>
- <!--加载属性文件-->
- <properties resource="db.properties"></properties>
- <!-- 和Spring整合后,environments配置将废除-->
- <environments default="development">
- <environment id="development">
- <!--使用JDBC事务管理,事务控制由mybatis-->
- <transactionManager type="JDBC">
- <property name="" value=""/>
- </transactionManager>
- <!--数据库连接池-->
- <dataSource type="UNPOOLED">
- <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>
- <mapper resource="userDao.xml" />
- <mapper resource="UserMapper.xml" />
- </mappers>
- </configuration>
主要关注19-22行
properties 补充
注意:Mybatis 将按以下顺序加载属性:
- 在 properties 元素体内定义的属性首先被读取。
- 然后读取 properties 元素中的 resource 或 url 加载的属性。它会覆盖已读取的同名属性
- 然后读取读取 parameterType 传递的属性。它会覆盖已读取的同名属性。
因此,通过 parameterType 传递的属性具有最高优先级,resource 或 url 加载的属性次之,最低优先级是 properties 元素体内定义的属性。
建议:
不要在 properties 元素体内添加任何属性值,只将属性值定义在 properties 文件中。
在 properties 文件中定义的属性值要有一定的特殊性,如 xxx.xxx.xxx , jdbc.url 等,防止与 其他属性名冲突
本文链接:https://liuyanzhao.com/5802.html
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏