先看一下文件,在當前包下有一個properties配置文件,在根目錄下有一個lib文件夾,裡面放的是mySql的驅動jar包
Driver :是一個接口,數據庫廠商必須提供實現的接口,能從其中獲取數據庫連接 可以通過Driver的實現類的對象獲取數據庫連接
* 1.加入mySql驅動
* 1.1 解壓mysql-connector-java-5.1.39.zip 1.2 在當前項目下新建lib目錄 1.3
* 把mysql-connector-java-5.1.39-bin.jar復制到lib目錄下 1.4 右鍵,buildPath,add to
* buildPath加入到類路徑下
第一種方法,不需要配置文件,直接獲取數據庫連接
1 @Test 2 public void testDriver() throws Exception { 3 // 1.創建一個Driver 的實現類的對象 4 Driver driver = new com.mysql.jdbc.Driver(); 5 // 2.准備連接數據庫的基本信息,url,user,password 6 String url = "jdbc:mysql://localhost:3306/test"; 7 8 Properties info = new Properties(); 9 info.put("user", "root"); 10 info.put("password", "123456"); 11 12 // 3.調用Driver接口的connect(url,info)獲取數據庫連接 13 Connection connection = driver.connect(url, info); 14 15 System.out.println(connection);//com.mysql.jdbc.JDBC4Connection@73f712 16 }
為了使得程序解耦,並且更加通用,使用如下方案
編寫一個通用的方法,在不修改源程序的情況下,可以獲取任何數據庫的連接 解決方案:把數據庫驅動Driver
實現類的全類名、url、user、password 放入到一個配置文件中, 通過修改配置文件的方式實現和具體的數據庫解耦。
代碼:
public Connection getConnection() throws Exception { String driverClass = null; String jdbcUrl = null; String user = null; String password = null; // 讀取類路徑下的 jdbc.properties 文件 InputStream in = getClass().getClassLoader().getResourceAsStream("jdbc.properties"); Properties properties = new Properties(); properties.load(in); driverClass = properties.getProperty("driver"); jdbcUrl = properties.getProperty("jdbcUrl"); user = properties.getProperty("user"); password = properties.getProperty("password"); // 通過反射創建 Driver 對象. Driver driver = (Driver) Class.forName(driverClass).newInstance(); Properties info = new Properties(); info.put("user", user); info.put("password", password); // 通過 Driver 的 connect 方法獲取數據庫連接. Connection connection = driver.connect(jdbcUrl, info); return connection; } @Test public void testGetConnection() throws Exception{ System.out.println(getConnection());//com.mysql.jdbc.JDBC4Connection@1556938 }
properties文件內容如下
#driver=oracle.jdbc.driver.OracleDriver #jdbcUrl=jdbc:oracle:thin:@localhost:1521:orcl #user=scott #password=java driver=com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql://localhost:3306/test user=root password=123456
這樣如果想連接其他數據庫時,只需修改此文件即可,無需修改代碼