由於使用DriverManager獲取資料庫連接時,由於DriverManager實現類中有一段靜態代碼塊,可以直接註冊驅動,且可以同時管理多個驅動程式 所以當換資料庫連接時需要指定不同的資料庫,那麼就需要反覆修改properties配置文件(雖然並不麻煩),所以我想將每種驅動連接程式的proper ...
由於使用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之類的配置文件寫好,然後想用哪個來這個配置文件中把名字一改就行,改動非常小(懶人專用~)