java程式設計與資料結構_第1頁
已閱讀1頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、JAVA 程式設計與資料結構,第十一章JDBC,JDBC,JAVA程式可用來與資料庫連結,進而操作資料庫中的資料,如取得,更新,儲存等等。使用之前請先設定電腦為DBMS的主機。再使用JDBC-ODBC Bridge為Driver來連結。,建立連結,Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // 第一步:讀進 JDBC Driver Str

2、ing url = "jdbc:odbc:Store"; ? Connection conn = DriverManager.getConnection(url); // 第二部:建立與資料庫的連結,建立敘述以及表格,接下來我們來建立敘述(Statement)。雖然我們已經建立了連結,不過我們必須要將SQL的指令送進去,才能夠根據這些指令來操控資料庫,所以我們需要State

3、ment。Statement stmt = conn.createStatement()建立表單(Table)的SQL指令為:CREATE TABLE Personnel(Name VARCHAR(32), ID INTEGER, Salary FLOAT, Gender String);,加入資料,根據製作的表單內容項目加入一筆資料。 加入資料的SQL語法為 Insert Into Personnel Values(

4、9;Tom', 11, 37000, '男'),讀取表單資料,將資料存入之後,可以根據需要將其讀取。 選擇資料的SQL語法為 Select ID, Gender, Name From Personnel 選擇資料之後,我們還需要取得其傳回值。這裡我們使用Statement內定的方法executeQuery()來執(zhí)行查詢。此方法的傳回值為ResultSet物件。,更新資料,更新資料庫中的資料的SQL語法為:

5、UPDATE 表單名 SET 欄位名 = value WHERE 欄位名 LIKE 'value' 意思是在Personnel表單中,把姓名欄為Jack的那一行之ID改為7。,使用Join Table,資料庫可以連結不同的表單來得到資料,不過兩個表單之中必須要有相關連的欄位來找尋到其中的關係。,查詢方式"SELECT Package.senderName, Personnel.Name FROM Packa

6、ge, Personnel WHERE Package.ID = 10 and Personnel.ID = 10";,Prepared Statements,有的時候我們會經常使用某一個SQL指令,例如Insert或是Update,在這個狀況下我們可以使用先行定義的敘述,也就是Prepared Statements。 PreparedStatement insertPackage = conn.prepareState

7、ment("Insert Into Package Values ( ?, 'Simon', ?, ? ,'男')");,這個語法有些部分使用問號代替,這些問號用來表示要輸入的數值,用setXXX()方法來將數值指定到上述的SQL語法,XXX代表資料形態(tài),例如: insertPackage.setString(1, "Dean");insertPackage.s

8、etInt(2, 22);insertPackage.setInt(3, 500); 接下來使用 insertPackage.executeUpdate(): 便可以執(zhí)行此insert的指令。,Result Sets的操作,當我們取得資料庫中的資料後,會儲存在ResultSet這個物件中。儲存在這個物件中的資料,我們可以將其想像成一個資料表單,一樣是一行一行的型態(tài)。ResultSet物件允許我們在這一個表單中一行一行的移動,如此

9、我們可以跳到我們想要的位置去查詢我們欲查詢的資料。,在能夠執(zhí)行這個Function之前,我們必須先加入幾個參數,如下: Statement stmt = conn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);ResultSet rs = stmt.executeQuery("SELECT ID, senderNam

10、e, State FROM Package where ID < 30");,在Result Sets的表單中移動,使用ResultSet物件的next()方法來將取得的資料一一列印出來,因為我們將指標訂在第一筆資料,然後一筆一筆(一行一行)往下取得資料。 如果我們將指標訂在最後一行,然後往上讀取,便會得到次序顛倒的結果。我們可以使用afterLast()方法來將指標訂在最後,而使用previous()方法來往前讀?。?/p>

11、此方法剛好相對於next()方法)。,absolute()方法指的是將指標移到絕對的行數。所謂絕對的行數便是第一行為1,第二行為2,…..。 而relative()方法便是將指標移到相對的行數,所謂相對的便是與目今的相對,好比說一開始是在第5行,那麼relative(2)指的便是第7行,利用Result Sets表單來修改資料內容,可以直接在讀取回來的Result Set表單中修改資料,再藉由此修改資料庫中的資料。 為了得到可以修改

12、的資料,我們要在createStatement()方法中輸入參數 Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);,使用updateString()方法來修改Result Set之中的資料。使用updateRow()方法來將資料庫中的資料也一併修改。 (此時指標必須指著此行),利用Res

13、ult Sets表單來加入一行資料,使用moveToInsertRow()方法來將指標移到一個空白行,然後使用updateXXX()方法來將資料輸入,最後使用insertRow()方法來將資料寫入資料庫。,利用Result Sets表單來刪除一行資料,刪除一行資料便顯得相對簡單得多了,我們只要在ResultSet表單中將指標移到我們想要刪除的那一行,然後使用deleteRow()方法即可。 在ResultSet的表單中,可能不會馬上顯

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論