更新時間:2023-01-29 來源:黑馬程序員 瀏覽量:
JDBC的全稱是Java數據庫連接(Java Database Connectivity),它是一套用于執行SQL語句的JavaAPI。應用程序可通過這套API連接到關系數據庫,并使用SQL語句來完成對數據庫中數據的查詢、更新和刪除等操作。應用程序使用JDBC訪問數據庫的方式如圖1-1所示。
從圖1-1中可以看出,應用程序使用JDBC訪問特定的數據庫時,需要與不同的數據庫驅動進行連接。由于不同數據庫廠商提供的數據庫驅動不同,因此,為了使應用程序與數據庫真正建立連接,JDBC不僅需要提供訪問數據庫的API,還需要封裝與各種數據庫服務器通信的細節。
圖1-1 應用程序使用JDBC訪問數據庫方式
通過前面的學習,我們對JDBC及其常用API有了大致的了解,接下來就開始學習JDBC編程,JDBC編程大致按照以下幾個步驟進行。
(1)加載并注冊數據庫驅動,具體方式如下。
DriverManager.registerDriver(Driver driver);
(2)通過DriverManager獲取數據庫連接,具體方式如下。
Connection conn= DriverManager.getConnection(String url,String,String pass);
從上述方式可以看出,getConnection()方法中有三個參數,它們分別表示數據庫url、登錄數據庫的用戶名和密碼。數據庫url通常遵循如下形式的寫法。
jdbc:subprotocol:subname
上面的url寫法中jdbc部分是固定的,subprotocol指定連接到特定數據庫的驅動程序,而subname部分則很不固定,也沒有什么規律,不同數據庫的url形式可能存在較大差異,以MySQL數據庫url為例,其形式如下。
jdbc:mysql://hostname:port/databasename
(3)通過Connection對象獲取Statement對象。Connection創建Statement方式有如下三種。
①createStatement():創建基本的Statement對象。
②prepareStatement():創建PreparedStatement()對象。
③prepareCall():創建CallableStatement()對象。
以創建基本的Statement()對象為例,具體方式如下。
Statement stmt= conn.createStatement();
(4)使用Statement執行SQL語句。所有的Statement都有如下三種方法來執行SQL語句。
①execute():可以執行任何SQL語句。
②executeQuery():通常執行查詢語句,執行后返回代表結果集的ResultSet對象。
③executeUpdate():主要用于執行DML和DDL語句。執行DML語句,如INSERT、UPDATE或DELETE時,返回受SQL語句影響的行數,執行DDL語句返回0。
以executeQuery()方法為例,具體方式如下。
//執行SQL語句,獲取結果集ResultSet ResultSet rs=stmt.executeQuery(sql);
(5)操作ResultSet結果集。如果執行的SQL語句是查詢語句,執行結果將返回一個ResultSet對象,該對象里保存了SQL語句查詢的結果。程序可以通過操作該ResultSet對象來取出查詢結果。ResultSet對象提供的方法主要可以分為以下兩類。
①next()、previous()、first()、last()、beforeFirst()、afterlast()、absolute()等移動記錄指針的方法。
②getXxx()獲取指針指向行,特定列的值。
(6)回收數據庫資源。關注數據庫連接,釋放資源,包括關閉ResultSet、Statement和Connection等資源。
至此,JDBC編程的大致步驟已經完成。