新手Java學習路線乾貨教材 《Java Web開發實戰》

千鋒雲端計算發表於2019-07-22

一年一度畢業季,又到了簡歷、offer漫天飛,失望與希望並存的時節。在IT行業,高校畢業生求職時,面臨的第一道門檻就是技能與經驗的考驗,但學校往往更注重學生的理論知識,忽略了對學生實踐能力的培養,因而導致很多求職者在面試中敗下陣來。在畢業生所學知識普遍脫離職場實戰的大趨勢下,《Java Web開發實戰》應運而生,此教材由千鋒教研院高教產品研發部編著、清華大學出版社出版,將理論應用於實踐,切實提高學生的實戰能力。


新手Java學習路線乾貨教材 《Java Web開發實戰》

下面給大家分享點本書的乾貨內容,關於JDBC內容繼續給大家學習,想要完整資料的可以銜接檢視之前的文章。

據庫可以是不相同的。

1.1.1 JDBC的常用API

JDBC定義了一系列運算元據庫的介面和類,這些介面和類位於java.sql包中。接下來,本節將詳細介紹JDBC的常用API。

1. Driver介面

Driver介面是所有JDBC驅動程式必須要實現的介面,該介面提供給資料庫廠商使用。在編寫JDBC程式時,必須先裝載特定資料庫廠商的驅動程式,裝載驅動程式透過java.lang.Class類中的靜態方法forName()實現。

2. DriverManager類

DriverManager類用於載入JDBC驅動並建立與資料庫的連線,DriverManager類的常用方法,具體如表1.1所示。

 

表1.1 DriverManager的常用方法

方法名稱

功能描述

registerDriver(Driver driver)

註冊資料庫的驅動程式

getConnection (String url,String user,String password)

獲取資料庫連線

3. Connection介面

Connection介面表示Java程式和資料庫的連線,Java程式和資料庫的互動是透過Connection介面來完成的。Connection介面的常用方法,具體如表1.2所示。

表1.2 Connection介面的常用方法

方法名稱

功能描述

createStatement()

建立向資料庫傳送sql的Statement物件

prepareStatement(String sql)

建立向資料庫傳送預編譯sql的PrepareSatement物件

prepareCall(String sql)

建立執行儲存過程的CallableStatement物件

4. Statement介面

Statement介面用於向資料庫傳送SQL語句,Statement介面提供了三個執行SQL語句的方法,具體如表1.3所示。

表1.3 Statement介面的方法

方法名稱

功能描述

execute(String sql)

執行語句,返回是否有結果集

executeQuery(String sql)

執行select語句,返回ResultSet結果集

executeUpdate(String sql)

執行insert/update/delete操作,返回更新的行數

5. PreparedStatement介面

繼承自Statement介面,用於執行預編譯的SQL語句,PreparedStatement介面提供了一些對資料庫進行基本操作的方法,具體如表1.4所示。

表1.4 PreparedStatement介面的方法

方法名稱

功能描述

executeQuery(String sql)

執行select語句,返回ResultSet結果集

executeUpdate(String sql)

執行insert/update/delete操作,返回更新的行數

addBatch(String sql)

把多條sql語句放到一個批處理中

executeBatch()

向資料庫傳送一批sql語句執行

6. CallableStatement介面

繼承自PreparedStatement介面,由方法prepareCall()建立,用於呼叫SQL儲存過程。CallableStatement介面提供了一些對資料庫進行基本操作的方法,具體如表1.5所示。

表1.5 CallableStatement介面的方法

方法名稱

功能描述

wasNull()

查詢最後一個讀取的OUT引數是否為SQL型別的Null值

setNull(String parameterName,int sqlType)

將指定引數設定為SQL型別的NULL

getInt(int parameterIndex )

以Java語言中int值的形式獲取資料庫中Integer型別引數的值

setString(String parameterName,String x)

將指定引數設定為給定的Java型別的String值

registerOutParameter(int parameterIndex, int sqlType)

按順序位置parameterIndex將OUT引數註冊為SQL型別

7. ResultSet介面

ResultSet介面表示執行select查詢語句獲得的結果集,該結果集採用邏輯表格的形式封裝。ResultSet介面中提供了一系列操作結果集的方法,具體如表1.6所示。

表1.6 ResultSet介面的方法

方法名稱

功能描述

getString(int index)、getString(String columnName)

獲得在資料庫裡是varchar、char等型別的資料物件

getFloat(int index)、getFloat(String columnName)

獲得在資料庫裡是Float型別的資料物件

getDate(int index)、getDate(String columnName)

獲得在資料庫裡是Date型別的資料

getBoolean(int index) 、

getBoolean(String columnName)

獲得在資料庫裡是Boolean型別的資料

getObject(int index)、getObject(String columnName)

向資料庫傳送一批sql語句執行

next()

移動到下一行

previous()

移動到前一行

absolute(int row)

移動到指定行

beforeFirst()

移動resultSet的最前面

afterLast()

移動到resultSet的最後面

ResultSet物件維護了一個指向表格資料行的指標,指標預設在第一行之前,呼叫next()或previous()等移動指標的方法,可以使指標指向具體的資料行,進而呼叫getObject()方法獲取指定的查詢結果。

8.  ResultSetMetaData介面

ResultSetMetaData介面用於獲取關於ResultSet 物件中列的型別和屬性資訊的物件。ResultSetMetaData介面的常用方法,具體如表1.7所示。

表1.7 ResultSetMetaData介面的常用方法

方法名稱

功能描述

getColumCount()

返回所有欄位的數目

getColumName(int colum)

根據欄位的索引值取得欄位的名稱

getColumType (int colum)

根據欄位的索引值取得欄位的型別

1.1.2 JDBC URL

JDBC URL提供了一種標識資料庫的方法,它可以使JDBC程式識別指定的資料庫並與之建立連線。大家在編寫JDBC程式時, 無需關注JDBC URL的形成過程,只需使用與所用的資料庫一起提供的URL即可。

JDBC URL的標準語法如圖1.4所示(以MySQL為例)。

新手Java學習路線乾貨教材 《Java Web開發實戰》


圖1.1 JDBC URL的標準語法

從圖1.4中可以看到,JDBC URL由協議、子協議、主機埠、資料庫名稱、引數等組成。其中,JDBC URL中的協議總是jdbc,子協議因資料庫廠商的不同而有所差異,在本例中為mysql,主機為資料庫所在主機地址,埠為MySQL資料庫的預設埠號3306,引數多為連線屬性的配置資訊,包括資料庫的使用者名稱、密碼、編碼、套接字連線的超時等,JDBC URL的常用引數如表1.8所示。

表1.8 JDBC URL的常用引數

引數型別

引數名稱

user

資料庫使用者名稱,用於連線資料庫

password

使用者密碼,用於連線資料庫

useUnicode

是否使用Unicode字符集,如果引數characterEncoding設定為gb2312或gbk,本引數值必須設定為true

characterEncoding

當useUnicode設定為true時,指定字元編碼。比如可設定為gb2312、gbk、utf8

autoReconnect

當資料庫連線異常中斷時,是否自動重新連線

autoReconnectForPools

是否使用針對資料庫連線池的重連策略

failOverReadOnly

自動重連成功後,連線是否設定為只讀

maxReconnectsautoReconnect

重試連線的次數

initialTimeoutautoReconnect

兩次重連之間的時間間隔,單位:秒

connectTimeout

和資料庫伺服器建立socket連線時的超時,單位:毫秒。 0表示永不超時,適用於JDK 1.4及更高版本

socketTimeoutsocket

操作(讀寫)超時,單位:毫秒。 0表示永不超時




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69916964/viewspace-2651373/,如需轉載,請註明出處,否則將追究法律責任。

相關文章