Mybatis Configuration.xml中properties属性定义

avatar 2017年08月11日18:45:12 1 3168 views
博主分享免费Java教学视频,B站账号:Java刘哥 ,长期提供技术问题解决、项目定制:本站商品点此

需求


将数据库连接参数单独配置在 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
  • 个人淘宝
  • 店铺名:言曌博客咨询部

  • (部分商品未及时上架淘宝)
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0