在前面的教程中,我们把数据库的驱动、用户名、密码等配置项全部写在 SqlMapConfig.xml中:

         <dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=UTF8"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</dataSource>

这并不是一种好的实践方式,比如我们的应用更换了数据库服务器,改用orcale数据库。这就需要我们对上面的配置项逐一修改,可维护性较差。

一种更好的实践方式是把这些配置项写在一个properties文件中,然后在SqlMapConfig.xml文件中通过表达式引用这些配置属性即可。

我们新建一个mysql.properties文件,内容如下:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=UTF8
username=root
password=

在SqlMapConfig.xml文件通过properties标签引入该属性文件,使用${属性名}方式引用mysql.properties中的属性值:

<?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="mysql.properties">
</properties>
<!-- 自定义类型别名 -->
<typeAliases>
<typeAlias alias="user" type="com.mybatis.domain.User"/>
</typeAliases> <environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="User.xml"/>
</mappers>
</configuration>

当我们改用oracle数据库时,只需要新建一个oracle.properties,然后將properties标签的resource属性改为oracle.properties,像下面这个样子。

    <properties resource="oracle.properties">
</properties>

项目文件结构如下图:

博文源码:https://github.com/rongbo-j/mybatis-blog

最新文章

  1. xv6课本翻译之——第0章 操作系统接口
  2. ping命令脚本实现显示网络状态、学生姓名、学号
  3. 【python】Redis介绍及简单使用
  4. [CareerCup] 13.2 Compare Hash Table and STL Map 比较哈希表和Map
  5. JVM的堆分配
  6. unity 翻牌游戏(全都是gui)
  7. C# 虚方法 与 隐藏方法(new) 区别
  8. 装饰者模式--《Head First DesignPattern》
  9. 在Apache Tomcat 7设置redis作为session store
  10. magento错误 Service Temporarily Unavailable magento
  11. 用tee和script来记录终端输出
  12. [Google Code Jam (Qualification Round 2014) ] A. Magic Trick
  13. uber司机如何注册 uber司机详细注册流程
  14. HDU4828 Grids 2014百度之星预赛问题解决
  15. js精要之函数
  16. [Android]自己动手做个拼图游戏
  17. full join no满连接的使用
  18. vim撤销与反撤销
  19. 剑指offer 4.树 重建二叉树
  20. Go语言的接口

热门文章

  1. springmvc生成注册验证码
  2. Git+VS2015修改提交代码以及解决冲突
  3. VSCode (Code) 技法
  4. JS应用实例1:表格各行换色
  5. Oracle [sys_connect_by_path] 函数
  6. eclipse集成ijkplayer项目
  7. linux rar 解压忽略带密码压缩包
  8. Python学习笔记(一):基本数据类型
  9. 阿里云Linux系统安装配置Tomcat方法
  10. (转载)使用Maven构建多模块项目