Java程序設(shè)計(jì)p08章節(jié)_第1頁
Java程序設(shè)計(jì)p08章節(jié)_第2頁
Java程序設(shè)計(jì)p08章節(jié)_第3頁
Java程序設(shè)計(jì)p08章節(jié)_第4頁
Java程序設(shè)計(jì)p08章節(jié)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

*Java程序設(shè)計(jì)18.1數(shù)據(jù)庫概念數(shù)據(jù)庫是長期存儲在計(jì)算機(jī)內(nèi)、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫按照某種數(shù)據(jù)模型組織、存儲在外存儲器上,且可被多個用戶同時使用。幾乎所有的應(yīng)用程序都需要存放大量的數(shù)據(jù),并將其組織成易于讀取的格式,這種要求可以通過數(shù)據(jù)庫管理系統(tǒng)來實(shí)現(xiàn)。

*Java程序設(shè)計(jì)28.2結(jié)構(gòu)化查詢語言(SQL)

SQL全稱為結(jié)構(gòu)化查詢語言(StructuredQueryLanguage),是一種標(biāo)準(zhǔn)化的數(shù)據(jù)庫查詢語言。雖說它是一種查詢語言,但它的功能卻遠(yuǎn)非查詢這么簡單。數(shù)據(jù)庫操作的方方面面,包括數(shù)據(jù)的定義、增加、修改、刪除以及用戶權(quán)限的設(shè)置都可以用SQL語言來實(shí)現(xiàn)。

*Java程序設(shè)計(jì)38.2.1SELECT語句SELECT(選擇或檢索)語句用于從數(shù)據(jù)庫中選擇滿足條件的記錄⒈

一個簡單的SELECT語句

SELECTName,Sex,BirthFormstudentbook

添加WHERE子句WHERE子句指明返回?cái)?shù)據(jù)必須滿足的條件

SELECTNo,Name,MajorFromstudentbookWHEREName=”莊靜”

*Java程序設(shè)計(jì)4⒊

多個查詢條件在檢索表行時,WHERE子句可以使用多個字段作為條件,它們之間可以用關(guān)系詞AND、OR連接。SELECTName,sex,birthFromstudentbookWHEREmajor=”計(jì)算機(jī)”

ANDsex=”女”

*Java程序設(shè)計(jì)5⒋

添加ORDERBY子句ORDERBY子句用于指明返回行的排列順序,下面的例子以姓名的順序返回所有的男同學(xué)的記錄信息(學(xué)號、姓名、專業(yè)):SELECTNo,Name,MajorFromstudentbookWHEREsex=”男”O(jiān)RDERBYName*Java程序設(shè)計(jì)68.2.2INSERT語句INSERT語句用于向數(shù)據(jù)庫的某個表中插入新的記錄

一個簡單的INSERT(插入)語句INSERTINTOstudentbook(no,name,birth)VALUES(‘041201’,‘張學(xué)?!?‘87-2-3’)

使用SELECT插入查詢所得的記錄

INSERTINTOstudentbook(No,Name,Birth)SELECTNo,Name,BirthFROMstudentbookAWHERENo=’041202’

*Java程序設(shè)計(jì)78.2.3UPDATE語句

UPDATE(更改)語句用于更改數(shù)據(jù)

通過下面的語句我們可以把數(shù)據(jù)庫中學(xué)號為“041201”記錄的性別改為“女”。UPDATEstudentbookSETsex=’女’WHERENo=’041201’

*Java程序設(shè)計(jì)88.2.4DELETE語句DELETE語句用于刪除數(shù)據(jù)表中的指定行

刪除一個表中的所有值

DELETEFROMstudengbook⒉

刪除一個表中指定的行DELETEFROMstudentbookWHERESex=’男’

*Java程序設(shè)計(jì)98.3JDBC概念

在Java中我們使用JDBC(JavaDataBaseConnectivity,Java數(shù)據(jù)庫互連)來完成應(yīng)用程序與數(shù)據(jù)庫的所有操作。

JDBC是一套類集,可以用來開發(fā)使用Java的客戶/服務(wù)器數(shù)據(jù)庫應(yīng)用程序,它支持SQL工業(yè)標(biāo)準(zhǔn)。JDBC有兩個重要的組件:驅(qū)動程序管理器和JDBC-ODBC橋。

*Java程序設(shè)計(jì)101.驅(qū)動程序管理器

Java應(yīng)用程序的平臺與數(shù)據(jù)庫無關(guān)性是通過驅(qū)動程序管理器實(shí)現(xiàn)的,在開發(fā)應(yīng)用中,需要為每一種數(shù)據(jù)庫格式使用不同的JDBC驅(qū)動程序,有時甚至需要為同一個格式的不同版本使用多個不同的驅(qū)動程序,這些驅(qū)動程序的選擇由驅(qū)動程序管理器完成。2.JDBC-ODBC橋因ODBC驅(qū)動程序由數(shù)據(jù)庫廠商提供,JDBC驅(qū)動程序不能直接作為ODBC的驅(qū)動程序,需使用數(shù)據(jù)廠商提供的JDBC-ODBC橋建立與數(shù)據(jù)庫的聯(lián)系,通過JDBC-ODBC橋,可將JDBC的方法調(diào)用轉(zhuǎn)換成ODBC的函數(shù)調(diào)用,從而實(shí)現(xiàn)JDBC驅(qū)動程序被用作ODBC的驅(qū)動程序。

*Java程序設(shè)計(jì)118.3.1Java數(shù)據(jù)庫連接

Java數(shù)據(jù)庫連接(JDBC)提供了Java程序的數(shù)據(jù)庫編程API(應(yīng)用程序編程接口)。它能夠提供以下功能:(1)與數(shù)據(jù)庫建立連接。(2)向數(shù)據(jù)庫發(fā)送SQL語句。(3)處理數(shù)據(jù)庫返回的結(jié)果。

在JDBC中包含了一組類和接口,用來連接到用任何DBMS(數(shù)據(jù)庫管理系統(tǒng))構(gòu)建的數(shù)據(jù)庫,提交對數(shù)據(jù)庫的SQL查詢,檢索與處理SQL查詢的結(jié)果。

*Java程序設(shè)計(jì)12

JDBCAPI把Java命令轉(zhuǎn)換成為通用的SQL語句。對于特定的數(shù)據(jù)庫問題,每個數(shù)據(jù)庫廠商應(yīng)該提供伴隨數(shù)據(jù)庫的驅(qū)動器。Java應(yīng)用程序調(diào)用JDBCAPI的方法,JDBCAPI使用驅(qū)動器與特定的數(shù)據(jù)庫通信。在JDBC構(gòu)架中,Java應(yīng)用程序通過JDBCAPI提交查詢給JDBC驅(qū)動器。JDBC驅(qū)動器把查詢轉(zhuǎn)換為特定DBMS理解的形式送與DBMS執(zhí)行。JDBC驅(qū)動器同時也檢索SQL查詢結(jié)果,并把它們轉(zhuǎn)換為應(yīng)用使用的等價的JDBCAPI類與對象。

*Java程序設(shè)計(jì)13Microsoft公司提供了一個名叫ODBC(開放式數(shù)據(jù)庫互連)的技術(shù),使Windows應(yīng)用程序能訪問不同的數(shù)據(jù)庫。ODBC中包含了一組與數(shù)據(jù)庫相關(guān)的ODBC驅(qū)動器。按照前面的敘述,好像不需要JDBC,Java應(yīng)用程序使用ODBC就能夠與不同的數(shù)據(jù)庫進(jìn)行通信。但是,因?yàn)镺DBCAPI是用C語言描述的,使用了指針及其他一些Java不支持的構(gòu)造,所以,Java程序不能直接與ODBC驅(qū)動器通信。作為JDBC的一部分,SUN提供了由JDBC訪問ODBC數(shù)據(jù)源的驅(qū)動器——JDBC-ODBC橋接器。

*Java程序設(shè)計(jì)148.3.2創(chuàng)建數(shù)據(jù)源為了同數(shù)據(jù)庫建立連接,首先要配置一個數(shù)據(jù)源。在Windows中配置數(shù)據(jù)源的步驟如下:(1)

打開操作系統(tǒng)中的控制面板,出現(xiàn)如圖8-5所示界面。(2)雙擊ODBC數(shù)據(jù)源,進(jìn)入如圖8-6所示界面。(3)單擊“添加”按鈕,選擇數(shù)據(jù)源驅(qū)動器。如圖8-7所示。(4)單擊“完成”按鈕,出現(xiàn)如圖8-6所示界面,輸入你想要的數(shù)據(jù)源名稱。

*Java程序設(shè)計(jì)15(5)在“數(shù)據(jù)庫”選項(xiàng)中單擊“選擇”按鈕。在如圖8-9所示界面中選取與數(shù)據(jù)源相關(guān)的數(shù)據(jù)庫。

(6)建立完畢,返回到如圖8-13所示界面。如果考慮周全,應(yīng)該為訪問數(shù)據(jù)源設(shè)置一個用戶名和密碼。在圖8-13中選擇“高級”按鈕,設(shè)置用戶名和密碼,如圖8-14所示。(7)確定之后,返回如圖8-6所示界面,在用戶數(shù)據(jù)源中就多了一個我們剛剛定義的名為MydataSource的數(shù)據(jù)源(如圖8-15所示)。通過這個數(shù)據(jù)源,應(yīng)用程序就能訪問ACCESS的數(shù)據(jù)庫stu.mdb。

*Java程序設(shè)計(jì)168.4使用JDBC連接數(shù)據(jù)庫在Java應(yīng)用程序中要使用到對數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行操作,首先就要進(jìn)行與數(shù)據(jù)庫的連接。與數(shù)據(jù)庫的連接一般分為兩個步驟:(1)裝入驅(qū)動器:所有的與數(shù)據(jù)庫交互操作都是借助于DBMS特定的驅(qū)動器而發(fā)生的。所以,進(jìn)行數(shù)據(jù)處理之前,需要確定特定DBMS廠商提供的驅(qū)動器并裝入它。(2)連接到數(shù)據(jù)庫:在裝入DBMS特定驅(qū)動器后,就可以連接需要操作的數(shù)據(jù)庫。

*Java程序設(shè)計(jì)178.4.1裝入驅(qū)動器

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

8.4.2連接到數(shù)據(jù)庫

用DriverManger類中的getConnection()方法建立與數(shù)據(jù)庫的連接。getConnection()方法中有三個參數(shù):jdbcurl、用戶名、密碼。其中jdbcurl又包含用冒號分隔的如下三個部分:(1)protocol:為jdbc。(2)subprotocol:為數(shù)據(jù)庫連接機(jī)制名。如果驅(qū)動器為JDBC-ODBC橋接,則此為odbc。(3)subname:為數(shù)據(jù)源名。*Java程序設(shè)計(jì)188.5數(shù)據(jù)庫操作8.5.1向數(shù)據(jù)庫發(fā)送SQL語句在Java中要對數(shù)據(jù)庫進(jìn)行操作,必須把數(shù)據(jù)庫操作的SQL語句發(fā)送給DBMS。對于沒有使用參數(shù)的數(shù)據(jù)庫簡單操作,可以使用Statement對象的executeQuery()方法和excuteUpdate()方法傳送給DBMS。其步驟如下:(1)首先使用已經(jīng)建立好的Connection對象的createStatement()方法來創(chuàng)建一個Statement對象。(2)然后定義一個變量存放要發(fā)送的SQL語句。

*Java程序設(shè)計(jì)198.5.2處理SQL執(zhí)行結(jié)果

1.getString()方法格式:StringgetString(intn);功能:返回結(jié)果集中當(dāng)前行第n列的字符值。2.getInt()方法格式:intgetInt(intn);功能:返回結(jié)果集中當(dāng)前行第n列的數(shù)字值。*Java程序設(shè)計(jì)203.getFloat()方法格式:floatgetFloat(intn);功能:返回結(jié)果集中當(dāng)前行第n列的浮點(diǎn)值。4.getDate()方法格式:DategetDate(intn);功能:返回結(jié)果集中當(dāng)前行第n列的日期時間值。5.next()方法

用來使當(dāng)前行成為它的下一行。

*Java程序設(shè)計(jì)218.5.3處理帶參數(shù)的查詢對數(shù)據(jù)庫數(shù)據(jù)的簡單查詢和更新操作,我們可以通過Statement對象發(fā)送給DBMS進(jìn)行處理。但在很多應(yīng)用中,要查詢的內(nèi)容或更新的內(nèi)容是運(yùn)行時由用戶輸入來確定的。此時,在編寫應(yīng)用程序時,就不能確定SQL語句中有些項(xiàng)的值。像這樣的查詢,Java提供了一個PreparedStatement對象來處理。

*Java程序設(shè)計(jì)22用Connection對象的PrepareStatement()方法

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論