JDBC(Java Database Connectivity),即Java數據庫連接。通過JDBC編程,可以使Java應用程序和數據庫進行交互。
JDBC驅動的方式有很多種,我們常用的驅動方式為:本地協議的純Java驅動程序。
JDBC編程的第一步,就是要獲取數據庫連接。所謂的 “獲取數據庫連接” 其實就是創建java.sql.Connection接口的實現對象。通過Connection的實現對象,可以使Java程序連接到數據庫,並修改和獲取數據庫信息。
獲取數據庫連接有兩種方式:1.通過java.sql.Driver接口獲取數據庫連接,2.通過java.sql.DriverManager(驅動管理類)獲取數據庫連接。
為了使程序更具有通用性,我們可以通過讀取配置文件的方式來獲取連接數據庫所需要的信息。這樣可以通過修改配置文件的方式,使Java程序連接到不同的數據庫。
在進行JDBC編程前,要先導入數據庫廠商提供的JDBC驅動程序。
以下是獲取數據庫連接的兩種方式的程序演示。
[1] 通過java.sql.Driver接口獲取數據庫連接
1 /** 2 * 1.通過java.sql.Driver接口獲取數據庫連接 3 * 2.使用配置文件讀取連接信息,使程序更加靈活 4 */ 5 package com.pack02; 6 7 import java.io.InputStream; 8 import java.sql.Connection; 9 import java.sql.Driver; 10 import java.util.Properties; 11 12 import org.junit.Test; 13 14 public class TestDriver { 15 16 @Test 17 public void testDriver() throws Exception { 18 19 //1.將配置文件中的連接信息獲取到Properties對象中 20 InputStream is = 21 this.getClass().getClassLoader().getResourceAsStream("setting.properties"); 22 23 Properties setting = new Properties(); 24 setting.load(is); 25 26 //2.從Properties對象中讀取需要的連接信息 27 String driverName = setting.getProperty("driver"); 28 String url = setting.getProperty("url"); 29 String user = setting.getProperty("user"); 30 String password = setting.getProperty("password"); 31 32 //3.創建Driver對象 33 Driver driver = (Driver)Class.forName(driverName).newInstance(); 34 35 Properties info = new Properties(); //driver的connect方法中需要一個Properties型的參數 36 info.put("user", user); 37 info.put("password", password); 38 39 //4.使用driver的connect方法獲取數據庫連接 40 Connection conn = driver.connect(url, info); 41 System.out.println( conn ); 42 } 43 }
[2] 通過java.sql.DriverManager(驅動管理類)獲取數據庫連接
1 /** 2 * 1.通過java.sql.DriverManager(驅動程序管理類)獲取數據庫連接 3 * 2.使用配置文件讀取連接信息,使程序更加靈活 4 */ 5 package com.pack02; 6 7 import java.io.InputStream; 8 import java.sql.Connection; 9 import java.sql.DriverManager; 10 import java.util.Properties; 11 12 import org.junit.Test; 13 14 public class TestDriverManager { 15 16 @Test 17 public void testDriverManager() throws Exception { 18 19 //1.將配置文件中的連接信息獲取到Properties對象中 20 InputStream is = 21 this.getClass().getClassLoader().getResourceAsStream("setting.properties"); 22 23 Properties setting = new Properties(); 24 setting.load(is); 25 26 //2.從Properties對象中讀取需要的連接信息 27 String driverName = setting.getProperty("driver"); 28 String url = setting.getProperty("url"); 29 String user = setting.getProperty("user"); 30 String password = setting.getProperty("password"); 31 32 //3.加載驅動程序,即將數據庫廠商提供的Driver接口實現類加載進內存; 33 // 該驅動類中的靜態代碼塊包含有注冊驅動的程序,在加載類時將被執行 34 Class.forName(driverName); 35 36 //4.通過DriverManager類的靜態方法getConnection獲取數據連接 37 Connection conn = DriverManager.getConnection(url, user, password); 38 System.out.println( conn ); 39 } 40 }
[3] 配置文件中需要的連接信息
1 driver=com.mysql.cj.jdbc.Driver 2 url=jdbc:mysql://127.0.0.1:3306/[....1....]?serverTimezone=GMT%2B8&useSSL=false 3 user=root 4 password=[....2....]
注意:1. 上述信息中,[....1....] 替換成具體的數據庫名稱,[....2....] 替換成root密碼。
2. 在連接高版本的 MySQL 數據庫時,要注意 driver 的包路徑 (高版本MySQL多了 “cj” ),url 連接地址的補充信息。(筆者的MySQL版本為8.0)
注:希望與各位讀者相互交流,共同學習進步。