Mybatis Configuration.xml中properties属性定义

需求

将数据库连接参数单独配置在 db.properties 文件中,只需要在 Configuration.xml (mybatis 全局配置文件)加载 db.properties 的属性值。

在 Configuration.xml 中就不需要对数据库连接参数硬编码。

将数据库连接参数只配置在 db.properties 中,原因:方便对参数进行统一管理,其他 xml 可以引用该 db.properties 文件 。

 

代码实现

1、在xml 文件同级目录新建 db.properties

  1. jdbc.driver=com.mysql.jdbc.Driver
  2. jdbc.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8
  3. jdbc.username=root
  4. jdbc.password=

注意:属性值不用加引号,因为我们 Configuration.xml 里已经添加了引号。 我的MySQL的密码为空。

2、Configuration.xml   Mybatis 全局配置文件

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3.     PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4.     "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6.   <!--加载属性文件-->
  7.   <properties resource="db.properties"></properties>
  8.   <!-- 和Spring整合后,environments配置将废除-->
  9.   <environments default="development">
  10.     <environment id="development">
  11.       <!--使用JDBC事务管理,事务控制由mybatis-->
  12.       <transactionManager type="JDBC">
  13.         <property name="" value=""/>
  14.       </transactionManager>
  15.       <!--数据库连接池-->
  16.       <dataSource type="UNPOOLED">
  17.         <property name="driver" value="${jdbc.driver}"/>
  18.         <property name="url" value="${jdbc.url}"/>
  19.         <property name="username" value="${jdbc.username}"/>
  20.         <property name="password" value="${jdbc.password}"/>
  21.       </dataSource>
  22.     </environment>
  23.   </environments>
  24.   <!--加载映射文件-->
  25.   <mappers>
  26.     <mapper resource="userDao.xml" />
  27.     <mapper resource="UserMapper.xml" />
  28.   </mappers>
  29. </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

 

  • 微信
  • 赶快加我聊天吧
  • weinxin
  • 博客交流群
  • 海纳百川,大家来水
  • weinxin
言曌

发表评论

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen: