Presentation is loading. Please wait.

Presentation is loading. Please wait.

JAVA 程式設計與資料結構 第十一章 JDBC.

Similar presentations


Presentation on theme: "JAVA 程式設計與資料結構 第十一章 JDBC."— Presentation transcript:

1 JAVA 程式設計與資料結構 第十一章 JDBC

2 JDBC JAVA程式可用來與資料庫連結,進而操作資料庫中的資料,如取得,更新,儲存等等。
使用之前請先設定電腦為DBMS的主機。再使用JDBC-ODBC Bridge為Driver來連結。

3 建立連結 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // 第一步:讀進 JDBC Driver String url = "jdbc:odbc:Store";  Connection conn = DriverManager.getConnection(url); // 第二部:建立與資料庫的連結

4 建立敘述以及表格 接下來我們來建立敘述(Statement)。雖然我們已經建立了連結,不過我們必須要將SQL的指令送進去,才能夠根據這些指令來操控資料庫,所以我們需要Statement。 Statement stmt = conn.createStatement() 建立表單(Table)的SQL指令為: CREATE TABLE Personnel(Name VARCHAR(32), ID INTEGER, Salary FLOAT, Gender String);

5 加入資料 根據製作的表單內容項目加入一筆資料。 加入資料的SQL語法為
Insert Into Personnel Values('Tom', 11, 37000, '男')

6 讀取表單資料 將資料存入之後,可以根據需要將其讀取。 選擇資料的SQL語法為
Select ID, Gender, Name From Personnel 選擇資料之後,我們還需要取得其傳回值。這裡我們使用Statement內定的方法executeQuery()來執行查詢。此方法的傳回值為ResultSet物件。

7 更新資料 更新資料庫中的資料的SQL語法為:
UPDATE 表單名 SET 欄位名 = value WHERE 欄位名 LIKE 'value' 意思是在Personnel表單中,把姓名欄為Jack的那一行之ID改為7。

8 使用Join Table 資料庫可以連結不同的表單來得到資料,不過兩個表單之中必須要有相關連的欄位來找尋到其中的關係。 查詢方式
"SELECT Package.senderName, Personnel.Name FROM Package, Personnel WHERE Package.ID = 10 and Personnel.ID = 10"; Package Personnel ID(人員編號) senderName(寄件人姓名) receiverName(收件人姓名) Fee(運費) State(目前狀況) Name(姓名) Gender(性別) Salary(薪資)

9 Prepared Statements 有的時候我們會經常使用某一個SQL指令,例如Insert或是Update,在這個狀況下我們可以使用先行定義的敘述,也就是Prepared Statements。 PreparedStatement insertPackage = conn.prepareStatement("Insert Into Package Values ( ?, 'Simon', ?, ? ,'男')"); 這個語法有些部分使用問號代替,這些問號用來表示要輸入的數值,用setXXX()方法來將數值指定到上述的SQL語法,XXX代表資料形態,例如: insertPackage.setString(1, "Dean"); insertPackage.setInt(2, 22); insertPackage.setInt(3, 500); 接下來使用 insertPackage.executeUpdate(): 便可以執行此insert的指令。

10 Result Sets的操作 當我們取得資料庫中的資料後,會儲存在ResultSet這個物件中。儲存在這個物件中的資料,我們可以將其想像成一個資料表單,一樣是一行一行的型態。ResultSet物件允許我們在這一個表單中一行一行的移動,如此我們可以跳到我們想要的位置去查詢我們欲查詢的資料。 在能夠執行這個Function之前,我們必須先加入幾個參數,如下: Statement stmt = conn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); ResultSet rs = stmt.executeQuery("SELECT ID, senderName, State FROM Package where ID < 30");

11 在Result Sets的表單中移動 absolute()方法指的是將指標移到絕對的行數。所謂絕對的行數便是第一行為1,第二行為2,…..。
而relative()方法便是將指標移到相對的行數,所謂相對的便是與目今的相對,好比說一開始是在第5行,那麼relative(2)指的便是第7行 使用ResultSet物件的next()方法來將取得的資料一一列印出來,因為我們將指標訂在第一筆資料,然後一筆一筆(一行一行)往下取得資料。 如果我們將指標訂在最後一行,然後往上讀取,便會得到次序顛倒的結果。我們可以使用afterLast()方法來將指標訂在最後,而使用previous()方法來往前讀取(此方法剛好相對於next()方法)。

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

13 利用Result Sets表單來加入一行資料
使用moveToInsertRow()方法來將指標移到一個空白行,然後使用updateXXX()方法來將資料輸入,最後使用insertRow()方法來將資料寫入資料庫。

14 利用Result Sets表單來刪除一行資料
刪除一行資料便顯得相對簡單得多了,我們只要在ResultSet表單中將指標移到我們想要刪除的那一行,然後使用deleteRow()方法即可。 在ResultSet的表單中,可能不會馬上顯示我們所做的修改,如此我們可以呼叫refreshRow()方法來從新整理資料庫內容。


Download ppt "JAVA 程式設計與資料結構 第十一章 JDBC."

Similar presentations


Ads by Google