java是如何通過JDBCAPI訪問數(shù)據(jù)庫(kù)的?
其實(shí)Java如何通過JDBCAPI訪問數(shù)據(jù)庫(kù)的,我們先來看看下圖:

通過圖片我們可以看出來,Java程序需要做數(shù)據(jù)庫(kù)操作通過jdbcAPI做操作,在做操作之前同DriverManager來建立連接。在建立連接之前我們要加載對(duì)應(yīng)要連接數(shù)據(jù)庫(kù)的驅(qū)動(dòng),所以驅(qū)動(dòng)需要數(shù)據(jù)庫(kù)廠商自己提供。
整理出來Java連接數(shù)據(jù)庫(kù)的操作基本的流程是:
-
加載驅(qū)動(dòng);
-
建立連接;
-
執(zhí)行sql;
-
處理結(jié)果;
-
關(guān)閉資源;
通過這五個(gè)步驟我答主來一一解釋如何訪問的數(shù)據(jù)庫(kù)
加載驅(qū)動(dòng)
我們得知道自己連接是數(shù)據(jù)庫(kù)是哪一類,所以得先加載需要連接數(shù)據(jù)庫(kù)的驅(qū)動(dòng),這個(gè)驅(qū)動(dòng)我們要提前引入。我就用mysql為例,代碼如下:
Class.forName("com.mysql.jdbc.Driver");
建立連接
驅(qū)動(dòng)加載完畢我們的和這個(gè)數(shù)據(jù)庫(kù)建立連接,所以我們要在建立連接的時(shí)候給上連接地址,登錄名,登錄密碼;這里會(huì)產(chǎn)生一個(gè)連接對(duì)象Connection;
Connection conn=DriverManager.getConnectioin("jdbc:mysql://服務(wù)器地址:3306",登錄名,密碼);
發(fā)送并執(zhí)行sql語(yǔ)句
有了連接對(duì)象Connection,那么我們就可以發(fā)送并執(zhí)行sql語(yǔ)句了,這個(gè)時(shí)候需要一個(gè)做發(fā)送執(zhí)行的對(duì)象Statement對(duì)象,這個(gè)對(duì)象是有Connection產(chǎn)生。然后根據(jù)對(duì)應(yīng)的sql語(yǔ)句類型調(diào)用對(duì)應(yīng)的執(zhí)行方法;
Statement sta=conn.creatStatement();
//執(zhí)行sql語(yǔ)句,這里用查詢舉例,會(huì)得到一個(gè)結(jié)果集對(duì)象。
ResultSet rs=sta.executeQuery(sql語(yǔ)句);
處理結(jié)果
這里執(zhí)行的是查詢sql語(yǔ)句,那么會(huì)得到一個(gè)獲得結(jié)果集的對(duì)象ResultSet對(duì)象。也就是說我們處理結(jié)果集就是在操作這個(gè)對(duì)象:
rs.next();//問有沒有
String a=rs.getString("字段名或下標(biāo)");//有就取,這行數(shù)據(jù)的某個(gè)字段
int b=rs.getInt("字段名或下標(biāo)");
關(guān)閉資源
剛剛做完操作,現(xiàn)在我們需要對(duì)使用過的資源對(duì)象做關(guān)閉操作;
要遵循后用先關(guān)的規(guī)則:
rs.Close();
sta.Close();
conn.Close();
總結(jié):大家可以看到通過我們以上的步驟可以看出來,我們通過api連接數(shù)據(jù)庫(kù)的步驟就是這個(gè)樣子的。
