更新時間:2021-06-07 來源:黑馬程序員 瀏覽量:
通常情況下,JDBC的使用可以按照以下幾個步驟進行:
(1) 加載數據庫驅動
加載數據庫驅動通常使用Class類的靜態(tài)方法forName()來實現,具體實現方式如下:
Class.forName("DriverName");
在上述代碼中,DriverName就是數據庫驅動類所對應的字符串。例如,要加載MySQL數據庫的驅動可以采用如下代碼:
Class.forName("com.mysql.jdbc.Driver");
加載Oracle數據庫的驅動可以采用如下代碼:
Class.forName("oracle.jdbc.driver.OracleDriver");
從上面兩種加載數據庫驅動的代碼可以看出,在加載驅動時所加載的并不是真正使用數據庫的驅動類,而是數據庫驅動類名的字符串。
(2) 通過DriverManager獲取數據庫連接
DriverManager中提供了一個getConnection()方法來獲取數據庫連接,獲取方式如下:
Connection conn = DriverManager.getConnection(String url, String user, String pwd);
從上述代碼可以看出,getConnection()方法中有3個參數,它們分別表示連接數據庫的URL、登錄數據庫的用戶名和密碼。其中用戶名和密碼通常由數據庫管理員設置,而連接數據庫的URL則遵循一定的寫法。以MySQL數據庫為例,其地址的書寫格式如下:
jdbc:mysql://hostname:port/databasename
上面代碼中,jdbc:mysql:是固定的寫法,mysql指的是MySQL數據庫。hostname指的是主機的名稱(如果數據庫在本機上,hostname可以為localhost或127.0.0.1,如果在其他機器上,那么hostname為所要連接機器的IP地址),port指的是連接數據庫的端口號(MySQL端口號默認為3306),databasename指的是MySQL中相應數據庫的名稱。
(3) 通過Connection對象獲取Statement對象
Connection創(chuàng)建Statement的方式有如下三種:
● createStatement():創(chuàng)建基本的Statement對象。
● prepareStatement(String sql):根據傳遞的SQL語句創(chuàng)建PreparedStatement對象。
● prepareCall(String sql):根據傳入的SQL語句創(chuàng)建CallableStatement對象。
以創(chuàng)建基本的Statement對象為例,其創(chuàng)建方式如下:
Statement stmt = conn.createStatement();
(4) 使用Statement執(zhí)行SQL語句
所有的Statement都有如下三種執(zhí)行SQL語句的方法:
● execute(String sql):用于執(zhí)行任意的SQL語句。
● executeQuery(String sql):用于執(zhí)行查詢語句,返回一個ResultSet結果集對象。
● executeUpdate(String sql):主要用于執(zhí)行DML(數據操作語言)和DDL(數據定義語言)語句。執(zhí)行DML語句(INSERT、UPDATE或DELETE)時,會返回受SQL語句影響的行數,執(zhí)行DDL(CREATE、ALTER)語句返回0。
以executeQuery()方法為例,其使用方式如下:
// 執(zhí)行SQL語句,獲取結果集ResultSet ResultSet rs = stmt.executeQuery(sql);
(5) 操作ResultSet結果集
如果執(zhí)行的SQL語句是查詢語句,執(zhí)行結果將返回一個ResultSet對象,該對象里保存了SQL語句查詢的結果。程序可以通過操作該ResultSet對象來取出查詢結果。
(6) 關閉連接,釋放資源
每次操作數據庫結束后都要關閉數據庫連接,釋放資源,以重復利用資源。需要注意的是,通常資源的關閉順序與打開順序相反,順序是ResultSet、Statement(或PreparedStatement)和Connection。為了保證在異常情況下也能關閉資源,需要在try...catch的finally代碼塊中統(tǒng)一關閉資源。
至此,JDBC程序的大致實現步驟已經講解完成。
猜你喜歡: