由于使用DriverManager获取数据库连接时,由于DriverManager实现类中有一段静态代码块,可以直接注册驱动,且可以同时管理多个驱动程序

所以当换数据库连接时需要指定不同的数据库,那么就需要反复修改properties配置文件(虽然并不麻烦),所以我想将每种驱动连接程序的properties文件都写好

具体当进行连接时,再加一个配置文件,这个配置文件中指定传入哪个properties文件

先来看一下文件路径(图片复制粘贴为何不好使了!!!!)

src

  com.jdbc.java

    TestJDBC.java

  properties

    jdbcName.properties

    mySql.properties

反正大体是这样了,第一层是包,下面是各种文件

代码如下

/**
* 指定一个配置文件中进行选择使用哪个配置文件(好绕口。。。)
*
* @return
* @throws Exception
*/
public Connection getConnection3() throws Exception {
// 准备连接数据库的四个字符串
// 驱动的全类名
String driverClass = null;
String jdbcUrl = null;
String user = null;
String password = null;
String jdbcName = null;
// 读取jdbcName.properties文件
InputStream inStream = getClass().getClassLoader().getResourceAsStream("properties/jdbcName.properties");
Properties propertiesOfName = new Properties();
propertiesOfName.load(inStream);
jdbcName = propertiesOfName.getProperty("jdbcName");
// 读取需要的properties 文件
InputStream in = getClass().getClassLoader().
getResourceAsStream("properties/" + jdbcName + ".properties");
Properties properties = new Properties();
properties.load(in);
driverClass = properties.getProperty("driver");
jdbcUrl = properties.getProperty("jdbcUrl");
user = properties.getProperty("user");
password = properties.getProperty("password"); // 加载数据库驱动程序(注册驱动)
Class.forName(driverClass); Connection connection = DriverManager.getConnection(jdbcUrl, user, password);
return connection;
}

测试代码如下

@Test
public void testGetConnection3() throws Exception {
System.out.println(getConnection3());
}

结果如下

com.mysql.jdbc.JDBC4Connection@104a311

需注意的问题:这种方式指定properties文件时不能选择相对路径,会报错

jdbcName.properties中的代码如下

jdbcName=mySql

这里的代码是不是非常简洁,只需把各种什么mySql,Oracle之类的配置文件写好,然后想用哪个来这个配置文件中把名字一改就行,改动非常小(懒人专用~)

最新文章

  1. Linux Process Management && Process Scheduling Principle
  2. Dividing a Chocolate(zoj 2705)
  3. ISBN和标准编码关系以及概念
  4. css3动画笔记
  5. Spark与Hadoop计算模型的比较分析
  6. JVM笔记6:JVM类加载机制
  7. Builder模式 初体验
  8. 使用微软的(how-old.net)构建智能门店管理系统
  9. IOS开发之xcode 快捷键
  10. python学习之list
  11. 归并排序的go语言与C++实现对比
  12. mysql数据库主从备份
  13. EMMC与RAND的区别
  14. 浅淡python中的with,上下文管理器
  15. 搞定导致CPU爆满的“罪魁祸首”
  16. 自制操作系统Antz(4)——进入保护模式 (下) 实现内核并从硬盘载入
  17. Zookeeper与Paxos
  18. 神经网络 之 DNN(深度神经网络) 介绍
  19. asp.net cors solution
  20. 4.3 数据操纵语言(DML)

热门文章

  1. Tomcat中部署WEB项目的四种方法
  2. Mysql之EXPLAIN显示using filesort
  3. LMAX Disruptor – High Performance, Low Latency and Simple Too 转载
  4. 基于 SquashFS 构建 Linux 可读写文件系统
  5. iOS 超 Easy 实现 渐变导航栏
  6. JQuery实现回车代替Tab键(按回车跳到下一栏)
  7. WPF 路由事件
  8. Java中Integer的最大值和最小值
  9. mysql_DML_update
  10. C#读取shp的属性信息