版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、JAVA 程式設(shè)計(jì)與資料結(jié)構(gòu),第十一章JDBC,JDBC,JAVA程式可用來(lái)與資料庫(kù)連結(jié),進(jìn)而操作資料庫(kù)中的資料,如取得,更新,儲(chǔ)存等等。使用之前請(qǐng)先設(shè)定電腦為DBMS的主機(jī)。再使用JDBC-ODBC Bridge為Driver來(lái)連結(jié)。,建立連結(jié),Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // 第一步:讀進(jìn) JDBC Driver Str
2、ing url = "jdbc:odbc:Store"; ? Connection conn = DriverManager.getConnection(url); // 第二部:建立與資料庫(kù)的連結(jié),建立敘述以及表格,接下來(lái)我們來(lái)建立敘述(Statement)。雖然我們已經(jīng)建立了連結(jié),不過(guò)我們必須要將SQL的指令送進(jìn)去,才能夠根據(jù)這些指令來(lái)操控資料庫(kù),所以我們需要State
3、ment。Statement stmt = conn.createStatement()建立表單(Table)的SQL指令為:CREATE TABLE Personnel(Name VARCHAR(32), ID INTEGER, Salary FLOAT, Gender String);,加入資料,根據(jù)製作的表單內(nèi)容項(xiàng)目加入一筆資料。 加入資料的SQL語(yǔ)法為 Insert Into Personnel Values(
4、9;Tom', 11, 37000, '男'),讀取表單資料,將資料存入之後,可以根據(jù)需要將其讀取。 選擇資料的SQL語(yǔ)法為 Select ID, Gender, Name From Personnel 選擇資料之後,我們還需要取得其傳回值。這裡我們使用Statement內(nèi)定的方法executeQuery()來(lái)執(zhí)行查詢。此方法的傳回值為ResultSet物件。,更新資料,更新資料庫(kù)中的資料的SQL語(yǔ)法為:
5、UPDATE 表單名 SET 欄位名 = value WHERE 欄位名 LIKE 'value' 意思是在Personnel表單中,把姓名欄為Jack的那一行之ID改為7。,使用Join Table,資料庫(kù)可以連結(jié)不同的表單來(lái)得到資料,不過(guò)兩個(gè)表單之中必須要有相關(guān)連的欄位來(lái)找尋到其中的關(guān)係。,查詢方式"SELECT Package.senderName, Personnel.Name FROM Packa
6、ge, Personnel WHERE Package.ID = 10 and Personnel.ID = 10";,Prepared Statements,有的時(shí)候我們會(huì)經(jīng)常使用某一個(gè)SQL指令,例如Insert或是Update,在這個(gè)狀況下我們可以使用先行定義的敘述,也就是Prepared Statements。 PreparedStatement insertPackage = conn.prepareState
7、ment("Insert Into Package Values ( ?, 'Simon', ?, ? ,'男')");,這個(gè)語(yǔ)法有些部分使用問(wèn)號(hào)代替,這些問(wèn)號(hào)用來(lái)表示要輸入的數(shù)值,用setXXX()方法來(lái)將數(shù)值指定到上述的SQL語(yǔ)法,XXX代表資料形態(tài),例如: insertPackage.setString(1, "Dean");insertPackage.s
8、etInt(2, 22);insertPackage.setInt(3, 500); 接下來(lái)使用 insertPackage.executeUpdate(): 便可以執(zhí)行此insert的指令。,Result Sets的操作,當(dāng)我們?nèi)〉觅Y料庫(kù)中的資料後,會(huì)儲(chǔ)存在ResultSet這個(gè)物件中。儲(chǔ)存在這個(gè)物件中的資料,我們可以將其想像成一個(gè)資料表單,一樣是一行一行的型態(tài)。ResultSet物件允許我們?cè)谶@一個(gè)表單中一行一行的移動(dòng),如此
9、我們可以跳到我們想要的位置去查詢我們欲查詢的資料。,在能夠執(zhí)行這個(gè)Function之前,我們必須先加入幾個(gè)參數(shù),如下: 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的表單中移動(dòng),使用ResultSet物件的next()方法來(lái)將取得的資料一一列印出來(lái),因?yàn)槲覀儗⒅笜?biāo)訂在第一筆資料,然後一筆一筆(一行一行)往下取得資料。 如果我們將指標(biāo)訂在最後一行,然後往上讀取,便會(huì)得到次序顛倒的結(jié)果。我們可以使用afterLast()方法來(lái)將指標(biāo)訂在最後,而使用previous()方法來(lái)往前讀?。?/p>
11、此方法剛好相對(duì)於next()方法)。,absolute()方法指的是將指標(biāo)移到絕對(duì)的行數(shù)。所謂絕對(duì)的行數(shù)便是第一行為1,第二行為2,…..。 而relative()方法便是將指標(biāo)移到相對(duì)的行數(shù),所謂相對(duì)的便是與目今的相對(duì),好比說(shuō)一開(kāi)始是在第5行,那麼relative(2)指的便是第7行,利用Result Sets表單來(lái)修改資料內(nèi)容,可以直接在讀取回來(lái)的Result Set表單中修改資料,再藉由此修改資料庫(kù)中的資料。 為了得到可以修改
12、的資料,我們要在createStatement()方法中輸入?yún)?shù) Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);,使用updateString()方法來(lái)修改Result Set之中的資料。使用updateRow()方法來(lái)將資料庫(kù)中的資料也一併修改。 (此時(shí)指標(biāo)必須指著此行),利用Res
13、ult Sets表單來(lái)加入一行資料,使用moveToInsertRow()方法來(lái)將指標(biāo)移到一個(gè)空白行,然後使用updateXXX()方法來(lái)將資料輸入,最後使用insertRow()方法來(lái)將資料寫入資料庫(kù)。,利用Result Sets表單來(lái)刪除一行資料,刪除一行資料便顯得相對(duì)簡(jiǎn)單得多了,我們只要在ResultSet表單中將指標(biāo)移到我們想要?jiǎng)h除的那一行,然後使用deleteRow()方法即可。 在ResultSet的表單中,可能不會(huì)馬上顯
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- matlab程式設(shè)計(jì)與應(yīng)用
- 橋梁工程課程式設(shè)計(jì)
- c++ 程式設(shè)計(jì) 語(yǔ)言簡(jiǎn)介
- 橋梁工程課程式設(shè)計(jì)
- 橋梁工程課程式設(shè)計(jì)
- 橋梁工程課程式設(shè)計(jì).doc
- 程式設(shè)計(jì)實(shí)習(xí)期中考no
- 第3章visualbasic程式設(shè)計(jì)-testpageforapache
- 橋梁工程課程式設(shè)計(jì).doc
- 橋梁工程課程式設(shè)計(jì).doc
- 橋梁工程課程式設(shè)計(jì).doc
- 橋梁工程課程式設(shè)計(jì).doc
- 橋梁工程課程式設(shè)計(jì).doc
- 887+橋梁工程課程式設(shè)計(jì)
- matlab程式設(shè)計(jì)入門篇影像顯示與讀寫
- 橋梁工程課程式設(shè)計(jì)-影響線.dwg
- 橋梁工程課程式設(shè)計(jì)-包絡(luò)圖.dwg
- 橋梁工程課程式設(shè)計(jì)-wancheng.dwg
- 橋梁工程課程式設(shè)計(jì)-影響線.dwg
- acm國(guó)際大學(xué)生程式設(shè)計(jì)競(jìng)賽acminternationalcollegiate
評(píng)論
0/150
提交評(píng)論