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

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

更新時(shí)間:2021-06-07 來(lái)源:黑馬程序員 瀏覽量:

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

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

(1) 加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)

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

Class.forName("DriverName");

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

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

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

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

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

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

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

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

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

jdbc:mysql://hostname:port/databasename

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

(3) 通過(guò)Connection對(duì)象獲取Statement對(duì)象

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

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

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

● prepareCall(String sql):根據(jù)傳入的SQL語(yǔ)句創(chuàng)建CallableStatement對(duì)象。

以創(chuàng)建基本的Statement對(duì)象為例,其創(chuàng)建方式如下:

Statement stmt = conn.createStatement();

(4) 使用Statement執(zhí)行SQL語(yǔ)句

所有的Statement都有如下三種執(zhí)行SQL語(yǔ)句的方法:

● execute(String sql):用于執(zhí)行任意的SQL語(yǔ)句。

● executeQuery(String sql):用于執(zhí)行查詢語(yǔ)句,返回一個(gè)ResultSet結(jié)果集對(duì)象。

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

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

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

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

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

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

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

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






猜你喜歡:

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

JDBC如何調(diào)用存儲(chǔ)過(guò)程

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

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

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!