- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA 程式設計與資料結構 第十一章 JDBC JDBC JAVA程式可用來與資料庫連結,進而操作資料庫中的資料,如取得,更新,儲存等等。 使用之前請先設定電腦為DBMS的主機。再使用JDBC-ODBC Bridge為Driver來連結。 建立連結 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); // 第一步:讀進 JDBC Driver String url = jdbc:odbc:Store; ? Connection conn = DriverManager.getConnection(url); // 第二部:建立與資料庫的連結 建立敘述以及表格 接下來我們來建立敘述(Statement)。雖然我們已經建立了連結,不過我們必須要將SQL的指令送進去,才能夠根據這些指令來操控資料庫,所以我們需要Statement。 Statement stmt = conn.createStatement() 建立表單(Table)的SQL指令為: CREATE TABLE Personnel(Name VARCHAR(32), ID INTEGER, Salary FLOAT, Gender String); 加入資料 根據製作的表單內容項目加入一筆資料。 加入資料的SQL語法為 Insert Into Personnel Values(Tom, 11, 37000, 男) 讀取表單資料 將資料存入之後,可以根據需要將其讀取。 選擇資料的SQL語法為 Select ID, Gender, Name From Personnel 選擇資料之後,我們還需要取得其傳回值。這裡我們使用Statement內定的方法executeQuery()來執行查詢。此方法的傳回值為ResultSet物件。 更新資料 更新資料庫中的資料的SQL語法為: UPDATE 表單名 SET 欄位名 = value WHERE 欄位名 LIKE value 意思是在Personnel表單中,把姓名欄為Jack的那一行之ID改為7。 使用Join Table 資料庫可以連結不同的表單來得到資料,不過兩個表單之中必須要有相關連的欄位來找尋到其中的關係。 查詢方式 SELECT Package.senderName, Personnel.Name FROM Package, Personnel WHERE Package.ID = 10 and Personnel.ID = 10; 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的指令。 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); 在Result Sets的表單中移動 使用ResultSet物件的next()方法來將取得的資料一一列印出來,因為我們將指標訂在第一筆資料,然後一筆
文档评论(0)