JDBC連接不同數據庫的實現步驟:
一、在Myeclipse或者Eclipse中新建JavaProject,命名:JDBCTest;
二、在src目錄下新建類:JDBC.java,同時輸入包名:com.jdbc,同時在src目錄下新建 jdbc.properties配置文件;
三、建立一個jar文件,將不同廠商的數據庫驅動文件放置在此目錄下;
四、右鍵點擊驅動文件,點擊 Build Path --> add class path ,此時在引用類庫中會出現數據庫 jar 包;
此時目錄結構如下
作爲程序猿,還是直接上代碼較爲實際!
jdbc.properties:
driver=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql:://localhost:3306/test
user=root
password=root
JDBC.java:
package com.jdbc;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.Driver;
import java.util.Properties;
/**
* Driver是一個驅動接口,不同的數據庫廠商必須提供實現的接口,才能獲取數據源,
* 即用Driver的實現類對象來獲取數據庫的連接。
*/
class JDBC{
/**
* 此方法耦合度較高,分析原因如下:
* 1、加載數據庫的驅動是寫死的,即 mysql,不夠靈活(...=new com.mysql.jdbc...);
* 2、數據庫的用戶名和密碼也是直接寫在代碼中的,不便於修改;
* 3、數據庫的 URL 也是寫在代碼中的,若需要更換數據庫,不便於修改。
*/
public static void connTest01() throws Exception{
// 用mysql來實現Driver接口
Driver driver = new com.mysql.jdbc.Driver();
Properties properties = new Properties();
//mysql的用戶名和密碼,注意此時鍵的值必須是 user 和 password,可以看看幫助文檔。
properties.put("user","root");
properties.put("password","root");
String URL = "jdbc:mysql://localhost:3306/test";
//Connection也是一個接口,記得導入包的時候導正確,是 java.sql.Connection包;
Connection conn = driver.connect( URL , properties );
System.out.println("Connection對象的測試一");
System.out.println(conn);
}
/**
* 此方法相對於上面的方法耦合度較低,將連接數據庫的一些參數寫入jdbc.properties文件
* 中,方便以後進行操作。
*/
public static void connTest02() throws Exception{
//運用輸入流獲取配置文件(下面一行代碼運行時會有報錯,忽視直接運行就可以了,當 //然,你也可以使用其他方法來加載配置文件)
InputStream is = getClass().getClassLoader().getResourceAsStream("jdbc.properties");
Properties properties = new Properties();
properties.load(is);
String driverClass = properties.getProperty("driver");
String URL = properties.getProperty("jdbcURL");
String user = properties.getProperty("user");
String password = properties.getProperty("password");
//運用反射來加載驅動,注意:需要強轉,因爲是Object類型。
Driver driver = (Driver) Class.forName(driverClass).newInstance();
Properties info = new Properties();
info.put("user", user);
info.put("password", password);
Connection conn = driver.connect(URL, info);
System.out.println("Connection對象的測試二");
System.out.println(conn);
}
/**
* 測試
* @throws Exception
*/
public static void main(String[] args) throws Exception {
//connTest01();
connTest02();
}
}
此代碼可以直接運行。以上的例子主要是針對 mysql 數據庫的,如果需要連接其他數據庫,在jdbc.properties修改信息就可以了,而不必在代碼裏面修改相關的內容。
總結:剛開始寫此博文的時候,運用的是JUnit4單元來測試的,就不需要main方法了,結果將博文中的代碼拷貝到myeclipse中會報錯,從“度娘”查詢解決了2,3個小時,結果可能是JUnit4版本的問題,(也沒換版本)最後只有用main方法來測試了。當然了,此博文的重點是連接不同數據庫。
對於以上內容,若有異議,歡迎留言。