首頁技術(shù)文章正文

實現(xiàn)JDBC程序一共需要幾步?

更新時間:2021-06-07 來源:黑馬程序員 瀏覽量:

1577370495235_學(xué)IT就到黑馬程序員.gif

通常情況下,JDBC的使用可以按照以下幾個步驟進(jìn)行:

(1) 加載數(shù)據(jù)庫驅(qū)動

加載數(shù)據(jù)庫驅(qū)動通常使用Class類的靜態(tài)方法forName()來實現(xiàn),具體實現(xiàn)方式如下:

Class.forName("DriverName");

在上述代碼中,DriverName就是數(shù)據(jù)庫驅(qū)動類所對應(yīng)的字符串。例如,要加載MySQL數(shù)據(jù)庫的驅(qū)動可以采用如下代碼:

Class.forName("com.mysql.jdbc.Driver");

加載Oracle數(shù)據(jù)庫的驅(qū)動可以采用如下代碼:

Class.forName("oracle.jdbc.driver.OracleDriver");

從上面兩種加載數(shù)據(jù)庫驅(qū)動的代碼可以看出,在加載驅(qū)動時所加載的并不是真正使用數(shù)據(jù)庫的驅(qū)動類,而是數(shù)據(jù)庫驅(qū)動類名的字符串。

(2) 通過DriverManager獲取數(shù)據(jù)庫連接

DriverManager中提供了一個getConnection()方法來獲取數(shù)據(jù)庫連接,獲取方式如下:

Connection conn = DriverManager.getConnection(String url, 
String user, String pwd);

從上述代碼可以看出,getConnection()方法中有3個參數(shù),它們分別表示連接數(shù)據(jù)庫的URL、登錄數(shù)據(jù)庫的用戶名和密碼。其中用戶名和密碼通常由數(shù)據(jù)庫管理員設(shè)置,而連接數(shù)據(jù)庫的URL則遵循一定的寫法。以MySQL數(shù)據(jù)庫為例,其地址的書寫格式如下:

jdbc:mysql://hostname:port/databasename

上面代碼中,jdbc:mysql:是固定的寫法,mysql指的是MySQL數(shù)據(jù)庫。hostname指的是主機(jī)的名稱(如果數(shù)據(jù)庫在本機(jī)上,hostname可以為localhost或127.0.0.1,如果在其他機(jī)器上,那么hostname為所要連接機(jī)器的IP地址),port指的是連接數(shù)據(jù)庫的端口號(MySQL端口號默認(rèn)為3306),databasename指的是MySQL中相應(yīng)數(shù)據(jù)庫的名稱。

(3) 通過Connection對象獲取Statement對象

Connection創(chuàng)建Statement的方式有如下三種:

● createStatement():創(chuàng)建基本的Statement對象。

● prepareStatement(String sql):根據(jù)傳遞的SQL語句創(chuàng)建PreparedStatement對象。

● prepareCall(String sql):根據(jù)傳入的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結(jié)果集對象。

● executeUpdate(String sql):主要用于執(zhí)行DML(數(shù)據(jù)操作語言)和DDL(數(shù)據(jù)定義語言)語句。執(zhí)行DML語句(INSERT、UPDATE或DELETE)時,會返回受SQL語句影響的行數(shù),執(zhí)行DDL(CREATE、ALTER)語句返回0。

以executeQuery()方法為例,其使用方式如下:

// 執(zhí)行SQL語句,獲取結(jié)果集ResultSet
ResultSet rs = stmt.executeQuery(sql);

(5) 操作ResultSet結(jié)果集

如果執(zhí)行的SQL語句是查詢語句,執(zhí)行結(jié)果將返回一個ResultSet對象,該對象里保存了SQL語句查詢的結(jié)果。程序可以通過操作該ResultSet對象來取出查詢結(jié)果。

(6) 關(guān)閉連接,釋放資源

每次操作數(shù)據(jù)庫結(jié)束后都要關(guān)閉數(shù)據(jù)庫連接,釋放資源,以重復(fù)利用資源。需要注意的是,通常資源的關(guān)閉順序與打開順序相反,順序是ResultSet、Statement(或PreparedStatement)和Connection。為了保證在異常情況下也能關(guān)閉資源,需要在try...catch的finally代碼塊中統(tǒng)一關(guān)閉資源。

至此,JDBC程序的大致實現(xiàn)步驟已經(jīng)講解完成。






猜你喜歡:

JDBC詳細(xì)教程與jdbc連接數(shù)據(jù)庫方法

JDBC如何調(diào)用存儲過程

數(shù)據(jù)庫連接池、Spring JDBC和HTML

黑馬程序java培訓(xùn)課程

分享到:
在線咨詢 我要報名
和我們在線交談!