




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第五章第五章 實(shí)現(xiàn)實(shí)現(xiàn)JDBC API訪問數(shù)據(jù)庫訪問數(shù)據(jù)庫本章主要內(nèi)容有JDBC的對象及其關(guān)系用JDBC連接數(shù)據(jù)庫用JDBC實(shí)現(xiàn)數(shù)據(jù)庫查詢用JDBC實(shí)現(xiàn)數(shù)據(jù)庫更新5.1 JDBC的對象及其關(guān)系的對象及其關(guān)系幾個(gè)比較常用的JDBC對象包括: Connection對象 DriverManager對象 Statement對象 ResultSet對象 5.1 JDBC的對象及其關(guān)系的對象及其關(guān)系JDBC類體系層次 ResultSetStatementPreparedStatementCallableStatementConnectionDriverManagerJDBC/ODBC橋橋Oracle驅(qū)動(dòng)程
2、序驅(qū)動(dòng)程序ODBC數(shù)據(jù)源數(shù)據(jù)源Oracle數(shù)據(jù)庫數(shù)據(jù)庫5.2 用用JDBC連接數(shù)據(jù)庫連接數(shù)據(jù)庫1. 數(shù)據(jù)庫數(shù)據(jù)庫URL 數(shù)據(jù)庫URL包括以下內(nèi)容:(1)定義所用的數(shù)據(jù)庫類型;(2)所有數(shù)據(jù)庫連接信息(主機(jī)、端口、數(shù)據(jù)庫名、用戶訪問和口令)。數(shù)據(jù)庫URL的語法如下: jdbc:5.2 用用JDBC連接數(shù)據(jù)庫連接數(shù)據(jù)庫2. 建立連接建立連接 通過加載驅(qū)動(dòng)程序,并使用數(shù)據(jù)庫URL來構(gòu)造連接,就可以建立一個(gè)數(shù)據(jù)庫的連接了。例如:Class.forName(“oracle.jdbc.driver.OracleDriver”);/裝載驅(qū)動(dòng)程序類Connection conn=DriverManager.g
3、etConnection(“jdbc:oracle:thin:MyOracleDB”,”scott”,”tiger”);/構(gòu)造一個(gè)數(shù)據(jù)庫連接5.3 用用JDBC實(shí)現(xiàn)數(shù)據(jù)庫查詢實(shí)現(xiàn)數(shù)據(jù)庫查詢構(gòu)造查詢需要考慮以下幾個(gè)方面的問題:選擇合適的語句進(jìn)行構(gòu)造;區(qū)別數(shù)據(jù)的檢索和數(shù)據(jù)的更新。5.3 用用JDBC實(shí)現(xiàn)數(shù)據(jù)庫查詢實(shí)現(xiàn)數(shù)據(jù)庫查詢1. 創(chuàng)建表創(chuàng)建表 COFFEES數(shù)據(jù)表COF_NAMESUP_IDPRICESALESTOTALColombian1017.9900French_Roast498.9900Espresso1509.9900Colombian_Decaf1018.9900French_Roa
4、st_Decaf499.99005.3 用用JDBC實(shí)現(xiàn)數(shù)據(jù)庫查詢實(shí)現(xiàn)數(shù)據(jù)庫查詢創(chuàng)建COFFEES表的程序如下:CREATE TABLE COFFEES(COF_NAME VARCHAR(32), SUP_ID INTEGER, PRICE FLOAT, SALES INTEGER, TOTAL INTEGER)5.3 用用JDBC實(shí)現(xiàn)數(shù)據(jù)庫查詢實(shí)現(xiàn)數(shù)據(jù)庫查詢SUPPLIERS信息表信息表 SUP_IDSUP_NAMESTREETCITYSTATEZIP101Acme, Inc.99 Market StreetGroundsville CA9519949Superior Coffee1 Par
5、ty PlaceMendocinoCA95460150The High Ground100 Coffee LaneMeadowsCA939665.3 用用JDBC實(shí)現(xiàn)數(shù)據(jù)庫查詢實(shí)現(xiàn)數(shù)據(jù)庫查詢創(chuàng)建SUPPLIERS表的程序如下:CREATE TABLE SUPPLIERS(SUP_ID INTEGER, SUP_NAME VARCHAR(32), STREET VARCHAR(32), CITY VARCHAR(32), STATE VARCHAR(32), ZIP VARCHAR(32)5.3 用用JDBC實(shí)現(xiàn)數(shù)據(jù)庫查詢實(shí)現(xiàn)數(shù)據(jù)庫查詢2. 創(chuàng)建處理語句創(chuàng)建處理語句 調(diào)用DriverManage
6、r.getConnection()方法返回一個(gè)Connection對象con,用它可以創(chuàng)建Statement對象,如下面的語句: Statement stmt = con.createStatement();5.3 用用JDBC實(shí)現(xiàn)數(shù)據(jù)庫查詢實(shí)現(xiàn)數(shù)據(jù)庫查詢?nèi)缓?,我們就可以調(diào)用Statement類的executeUpdate()方法來創(chuàng)建數(shù)據(jù)表了。stmt.executeUpdate(CREATE TABLE COFFEES + (COF_NAME VARCHAR(32), SUP_ID INTEGER, PRICE FLOAT, + SALES INTEGER, TOTAL INTEGER);
7、5.3 用用JDBC實(shí)現(xiàn)數(shù)據(jù)庫查詢實(shí)現(xiàn)數(shù)據(jù)庫查詢在一個(gè)表中添加數(shù)據(jù)實(shí)際上也是對表數(shù)據(jù)的更新,因此,我們還可以使用executeUpdate方法實(shí)現(xiàn)對表數(shù)據(jù)的添加。例如下面的代碼:Statement stmt = con.createStatement();stmt.executeUpdate( INSERT INTO COFFEES + VALUES (Colombian, 101, 7.99, 0, 0);5.3 用用JDBC實(shí)現(xiàn)數(shù)據(jù)庫查詢實(shí)現(xiàn)數(shù)據(jù)庫查詢executeUpdate方法可以被調(diào)用任意多次。stmt.executeUpdate(INSERT INTO COFFEES + VALU
8、ES (French_Roast, 49, 8.99, 0, 0);stmt.executeUpdate(INSERT INTO COFFEES + VALUES (Espresso, 150, 9.99, 0, 0);stmt.executeUpdate(INSERT INTO COFFEES + VALUES (Colombian_Decaf, 101, 8.99, 0, 0);stmt.executeUpdate(INSERT INTO COFFEES + VALUES (French_Roast_Decaf, 49, 9.99, 0, 0);5.3 用用JDBC實(shí)現(xiàn)數(shù)據(jù)庫查詢實(shí)現(xiàn)數(shù)據(jù)庫
9、查詢3. 從數(shù)據(jù)庫表中獲取數(shù)據(jù)從數(shù)據(jù)庫表中獲取數(shù)據(jù) 使用SQL語句的SELECT進(jìn)行查詢 SELECT COF_NAME, PRICE FROM COFFEES查詢的結(jié)果:COF_NAMEPRICE- -Colombian 7.99French_Roast8.99Espresso9.99Colombian_Decaf 8.99French_Roast_Decaf 9.995.3 用用JDBC實(shí)現(xiàn)數(shù)據(jù)庫查詢實(shí)現(xiàn)數(shù)據(jù)庫查詢JDBC把查詢結(jié)果返回到ResultSet對象中 ResultSet rs = stmt.executeQuery( SELECT COF_NAME, PRICE FROM CO
10、FFEES);5.3 用用JDBC實(shí)現(xiàn)數(shù)據(jù)庫查詢實(shí)現(xiàn)數(shù)據(jù)庫查詢除了要用到ResultSet類的對象以外,還需要兩個(gè)方法,即 next()方法和 getXXX()方法,這兩個(gè)方法都是ResuleSet類中的方法。 5.3 用用JDBC實(shí)現(xiàn)數(shù)據(jù)庫查詢實(shí)現(xiàn)數(shù)據(jù)庫查詢SQL數(shù)據(jù)類型及其相應(yīng)的Java語言數(shù)據(jù)類型 SQL數(shù)據(jù)類型數(shù)據(jù)類型Java數(shù)據(jù)類型數(shù)據(jù)類型INTEGER或或INTintSMALLINTshortNUMERIC、DECIMAIL或或DECjava.sql.NumericFLOATdoubleREALfloatDOUBLEdoubleCHARACTER或或CHARStringVARCHA
11、RStringBOOLEANbooleanDATEjava.sql.DateTIMEjava.sql.TimeTIMESTAMPjava.sql.TimestampBLOBjava.sql.BlobCLOBjava.sql.ClobARRAYjava.sql.Array5. 4 用用JDBC實(shí)現(xiàn)數(shù)據(jù)庫更新實(shí)現(xiàn)數(shù)據(jù)庫更新使用JDBC更新數(shù)據(jù)庫就是使用excuteUpdate()方法向數(shù)據(jù)庫傳送SQL語句。這些語句包括SQL INSERT、UPDATE或DELETE語句,也包括DDL語句,如CREATE TABLE等。5. 4 用用JDBC實(shí)現(xiàn)數(shù)據(jù)庫更新實(shí)現(xiàn)數(shù)據(jù)庫更新管理人員想要對COFFEES表
12、中的SALES字段的值進(jìn)行更新,則可以使用如下的代碼:String updateString = UPDATE COFFEES +SET SALES = 75 + WHERE COF_NAME LIKE Colombian;stmt.executeUpdate(updateString);5. 4 用用JDBC實(shí)現(xiàn)數(shù)據(jù)庫更新實(shí)現(xiàn)數(shù)據(jù)庫更新這段代碼的執(zhí)行結(jié)果應(yīng)該如下所示:COF_NAMESUP_ID PRICE SALES TOTAL- - - -Colombian101 7.99 75 0French_Roast 49 8.99 0 0Espresso150 9.99 0 0Colombian_Decaf101 8.99 0 0French_Roast_Decaf 49 9.99 0 05. 4 用用JDBC實(shí)現(xiàn)數(shù)據(jù)庫更新實(shí)現(xiàn)數(shù)據(jù)庫更新在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨時(shí)供應(yīng)合同范本
- 企業(yè)修路合同范本
- 2025年衡水駕駛員貨運(yùn)從業(yè)資格證模擬考試題
- 中介交易服務(wù)合同范本
- 會展項(xiàng)目服務(wù)合同范例
- 2025年昆明道路貨運(yùn)從業(yè)資格證模擬考試官方題下載
- 修車配件合同范本
- 出租合同范本版
- 農(nóng)村水源地租賃合同范本
- 與演員合作合同范本
- 收費(fèi)站稽查管理制度
- 老年心房顫動(dòng)診治中國專家共識(2024)解讀
- NB-T31056-2014風(fēng)力發(fā)電機(jī)組接地技術(shù)規(guī)范
- 部編版八年級上冊歷史期中復(fù)習(xí)重點(diǎn)總結(jié)
- DL5190.5-2019電力建設(shè)施工技術(shù)規(guī)范第5部分:管道及系統(tǒng)
- 農(nóng)信銀支付系統(tǒng)文檔
- 華為認(rèn)證HCIA-Security安全H12-711考試題庫及答案
- 建筑工地春節(jié)前安全教育
- (正式版)YST 1682-2024 鎂冶煉行業(yè)綠色工廠評價(jià)要求
- DL-T 5148-2021水工建筑物水泥灌漿施工技術(shù)條件-PDF解密
- JGJ6-2011 高層建筑筏形與箱形基礎(chǔ)技術(shù)規(guī)范
評論
0/150
提交評論