官术网_书友最值得收藏!

4.3 JDBC應用案例

第4章任務3

1.用JDBC連接SQL Server數據庫

1)在SQL Server中創建數據庫myDB。

2)通過查找數據庫驅動類SQLServerDriver,判斷數據庫是否連接成功。

需要下載sqljdbc4.jar并作為External JAR添加到項目中。

3)建立到數據庫的連接,使用的url為:

由于SQL Server數據庫按用戶進行訪問,連接時需要提供用戶名和密碼。

4)進行數據庫操作。

5)關閉數據庫。

2.創建和刪除表

SQL中使用CREATE TABLE和DROP TABLE語句來創建和刪除一個表。它通過statement對象的executeUptate()方法來完成。

1)創建一個表user,此表有兩列,列ID為整數型,列Name為字符型:

2)刪除一個表:

3.對表中記錄的操作

對表中記錄的操作包括修改、插入和刪除,它們對應于SQL的UPDATE、INSERT和DELETE操作。它采用Statement類中的executeUpdate()方法。此方法的參數是一個String對象,即要執行的SQL語句,返回值是一個整數。

1)修改操作。將user表中ID為1001的記錄的Name項改為“張三”:

2)插入和刪除記錄操作。在表中插入和刪除記錄:

3)增加和刪除表結構中的列操作。在表中增加一列,類型為字符型:

刪除表中某一列:

4.對表記錄集的操作(Statement方式)

1)創建Statement對象。

2)執行查詢語句。在Statement對象上,可以使用executeQuery()方法來執行一個查詢語句。executeQuery()的參數是一個String對象,即一個SQL的SELECT語句。它的返回值是一個ResultSet類的對象。

此語句將在結果集rs中返回user表中的所有行。

此語句將在結果集rs中返回user表中ID小于1001的行的name列和address列。

3)關閉Statement對象。當一個對象在使用完后,都要關閉它。

5.對表記錄集的操作(PreparedStatement方式)

PreparedStatement類是Statement類派生的子類,因此它可以使用Statement類中的方法。和Statement一樣,要想執行一個SQL查詢語句,首先創建一個PreparedStatement對象,然后執行查詢語句,最后,關閉PreparedStatement對象。

1)創建PreparedStatement對象。Connection對象可以創建PreparedStatement對象。在創建時,應該給出要預編譯的SQL語句。

2)執行查詢語句。PreparedStatement對象也使用executeQuery()方法來執行語句。與Statement類不同的是,該方法沒有參數。因為在創建PrepareStatement對象時,已經給出了要執行的SQL語句,并進行了預編譯。

3)關閉PrepareStatement對象。PrepareStatement對象也是使用close()方法來關閉的,實際上,它是調用父類Statement的close()方法。

6.對表記錄集的操作(CallableStatement方式)

CallableStatement類是PreparedStatement類派生的子類,可以使用PreparedStatement類和Statement類中的方法。

1)創建CallableStatement對象。用Connection類的prepareCall()方法可以創建一個CallableStatement對象。它的參數是一個String對象,一般格式為"call存儲過程名"。

2)執行存儲過程。CallableStatement類使用父類PreparedStatement類的executeQuery()方法或execute()方法來執行存儲過程。

3)關閉CallableStatement對象。CallableStatement對象也是使用close()方法來關閉的,實際上使用Statement的close()方法。

7.檢索結果集

ResultSet對象包括一個由查詢語句返回的表,這個表包含所有的查詢結果。ResultSet對象有一個游標指向當前行,并有next()方法使游標移向下一行。next()方法返回的是一個boolean值,若為true,則說明游標已成功地移向下一行;若為false,則說明無下一行,即結果集已處理完畢。

第一次使用next()方法時,游標將指向結果集的第一行,這時可對第一行的數據進行處理。然后,用next()方法,將游標移向下一行,繼續處理第二行數據。

在對每一行進行處理時,可以對各個列按任意順序進行處理。如ResultSet類的get×××()方法可以從某一列中獲得結果。其中×××是JDBC中的Java數據類型,如getInt,getString,getDate等。

例如,按行順序查詢結果集信息,代碼如下:

主站蜘蛛池模板: 开鲁县| 洱源县| 介休市| 临澧县| 泾源县| 道真| 潼关县| 呼玛县| 清苑县| 卢氏县| 共和县| 安乡县| 高州市| 泗水县| 隆昌县| 乐都县| 南郑县| 东光县| 西畴县| 台北县| 扎鲁特旗| 平果县| 东安县| 安陆市| 获嘉县| 桐城市| 安徽省| 彰武县| 汉寿县| 额济纳旗| 山西省| 沅江市| 北京市| 云龙县| 鄢陵县| 寿阳县| 徐汇区| 沙坪坝区| 思南县| 化德县| 清流县|