《oracle數(shù)據(jù)庫技術(shù)》課件第9章_第1頁
《oracle數(shù)據(jù)庫技術(shù)》課件第9章_第2頁
《oracle數(shù)據(jù)庫技術(shù)》課件第9章_第3頁
《oracle數(shù)據(jù)庫技術(shù)》課件第9章_第4頁
《oracle數(shù)據(jù)庫技術(shù)》課件第9章_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

9.1案例完善

9.2技術(shù)要點(diǎn)

9.3本案例的解決方案

9.4案例的實(shí)現(xiàn)

9.5小結(jié)

習(xí)題與思考題

實(shí)踐9案例綜合分析

第9章案例實(shí)現(xiàn)9.1案例完善9.1.1功能完善對(duì)于任何一個(gè)管理系統(tǒng)而言,查詢功能都是至關(guān)重要的,當(dāng)基礎(chǔ)數(shù)據(jù)錄入到數(shù)據(jù)庫后,剩下的工作主要就是對(duì)基礎(chǔ)數(shù)據(jù)的管理。如何能快速、高效地得到用戶所關(guān)心的信息是軟件開發(fā)成功的關(guān)鍵。鑒于此,首先為系統(tǒng)中每一個(gè)功能模塊設(shè)定針對(duì)本模塊的查詢功能;其次,單獨(dú)增加一個(gè)綜合查詢模塊,其中包括員工消費(fèi)情況、就醫(yī)情況、醫(yī)保存款情況的詳細(xì)查詢與統(tǒng)計(jì);再次,進(jìn)一步考慮本系統(tǒng)的安全性,將使用本管理系統(tǒng)的人員劃分為兩個(gè)級(jí)別,即管理員和普通用戶。管理員能對(duì)后臺(tái)數(shù)據(jù)庫進(jìn)行各種操作,包括錄入、刪除、更新、查詢等,而普通用戶只具有查詢功能和修改用戶密碼的功能。為此,系統(tǒng)中增加了一個(gè)用戶管理模塊,主要負(fù)責(zé)添加新用戶(分配用戶權(quán)限)及修改用戶密碼功能。完善后的系統(tǒng)功能模塊如圖9-1所示。圖9-1完善后的系統(tǒng)功能模塊9.1.2數(shù)據(jù)庫完善

1.表對(duì)象完善

1)創(chuàng)建新表

由于新增加了用戶管理功能,因此需要?jiǎng)?chuàng)建相應(yīng)的數(shù)據(jù)表,即用戶表“yongh”,創(chuàng)建語句如下:

CREATETABLEyongh

(usernameVARCHAR2(5)PRIMARYKEY,

userpasswordVARCHAR2(6),

privilegeVARCHAR2(1)

);

2)修改表結(jié)構(gòu)

為了更好地體現(xiàn)序列和觸發(fā)器的作用,本案例中為多個(gè)字段聯(lián)合作主鍵的表增加一個(gè)可自動(dòng)增長(zhǎng)值的字段作為主鍵,這樣做也為程序中處理表中的數(shù)據(jù)帶來了方便。例如,表“consume”中的關(guān)鍵字由“cno”、“hno”和“csdate”3個(gè)字段聯(lián)合而成,因此將“consume”表增加一個(gè)新的字段“connum”,數(shù)據(jù)類型為VARCHAR2,長(zhǎng)度為10,讓這個(gè)字段的值自動(dòng)增長(zhǎng),設(shè)其為該表的關(guān)鍵字。為了讓字段的值能夠自動(dòng)增長(zhǎng)并隨著新記錄自動(dòng)插入表中,需要由序列和觸發(fā)器共同完成,具體實(shí)現(xiàn)請(qǐng)參考實(shí)踐8中常見問題分析中的第5題。

其他多個(gè)字段聯(lián)合作主鍵的表結(jié)構(gòu)的修改請(qǐng)查看光盤。

2.視圖對(duì)象完善

為了方便從多個(gè)表中查詢滿足條件的記錄,新建一些針對(duì)本系統(tǒng)實(shí)用的視圖,來簡(jiǎn)化相應(yīng)的查詢操作。例如,創(chuàng)建視圖“see_view”,將4個(gè)表(“see”、“staff”、“business”和“hospital”)中相關(guān)的信息連接起來,創(chuàng)建語句如下:

CREATEVIEWsee_view(sno,sname,ssex,sbirthday,cno,hno,hname,bname,btype,sdate)

AS

SELECTstaff.sno,sname,ssex,TO_CHAR(sbirthday)ASsbirthday,cno,

hospital.hno,hname,bname,btype,

TO_CHAR(sdate)ASsdateFROMsee,staff,hospital,business

WHEREsee.sno=staff.snoANDsee.hno=hospital.hnoANDstaff.bno=business.bno

WITHREADONLY;

其他視圖請(qǐng)查看光盤。

3.觸發(fā)器對(duì)象完善

為了系統(tǒng)操作方便,創(chuàng)建觸發(fā)器“addstaff_tri”,當(dāng)添加新員工記錄時(shí)被觸發(fā),用于完成將新員工設(shè)定為本系統(tǒng)的普通用戶,將新員工的編號(hào)、初始密碼及普通用戶權(quán)限的信息添加到用戶表“yongh”中,創(chuàng)建語句如下:

CREATEORREPLACETRIGGERaddstaff_tri

AFTERINSERTONstaff

FOREACHROW

BEGIN

INSERTINTOyonghVALUES(:new.sno,‘000000’,‘1’);/*新員工的初始密碼為“000000”,普通用戶權(quán)限設(shè)定為“1”表示*/

END;

其他觸發(fā)器請(qǐng)查看光盤。

4.表的數(shù)據(jù)一致性維護(hù)

為了確保表間數(shù)據(jù)的一致性,應(yīng)使用以下三種實(shí)現(xiàn)方法:

(1)創(chuàng)建外鍵關(guān)聯(lián),可以實(shí)現(xiàn)級(jí)聯(lián)刪除,適用于有外鍵關(guān)聯(lián)的父子表,當(dāng)父表數(shù)據(jù)刪除了,子表中相應(yīng)的數(shù)據(jù)也隨之刪除。例如,圖5-9中定義的“staff”表中“bno”字段與“business”表中“bno”字段外鍵關(guān)聯(lián),那么當(dāng)“business”表中“bno”為某個(gè)值的記錄已刪除了,“staff”表中的所有“bno”的值與“business”表中“bno”值相等的記錄一并刪除。

(2)創(chuàng)建觸發(fā)器,可以實(shí)現(xiàn)表間數(shù)據(jù)的級(jí)聯(lián)更新和刪除,無論表間是否存在外鍵關(guān)聯(lián)。例如,在“insurance”表上創(chuàng)建觸發(fā)器“insuranceupdate_row_tri”,完成當(dāng)醫(yī)??ㄖ薪痤~發(fā)生改變時(shí)(比如劃卡劃多了等),醫(yī)??ㄖ械拇婵钣囝~要隨之改變,從而保證兩表數(shù)據(jù)的一致。

觸發(fā)器“insuranceupdate_row_tri”的創(chuàng)建語句如下:

CREATETRIGGERinsuranceupdate_row_tri

BEFOREUPDATEONinsurance

FOREACHROW

BEGIN

UPDATEcardSETcmoney=cmoney-:old.imoney+:new.imoneyWHEREcno=:o;

DBMS_OUTPUT.PUT_LINE(‘當(dāng)“insurance”表修改一筆存款金額時(shí),“card”表中相應(yīng)醫(yī)??ㄉ系慕痤~隨之更新相應(yīng)的金額!’);

END;

(3)創(chuàng)建存儲(chǔ)過程,同樣可以實(shí)現(xiàn)表間數(shù)據(jù)的級(jí)聯(lián)更新和刪除,與觸發(fā)器不同的是,存儲(chǔ)過程可以接收參數(shù),而觸發(fā)器不能。例如,創(chuàng)建存儲(chǔ)過程“xiaofeiupdate_pro”,用于完成當(dāng)“consume”表中更改消費(fèi)金額時(shí),將“card”表中相應(yīng)卡號(hào)上的余額隨之調(diào)整,從而保證兩表數(shù)據(jù)的一致。

存儲(chǔ)過程“xiaofeiupdate_pro”的創(chuàng)建語句如下:

CREATEPROCEDURExiaofeiupdate_pro

(yibkhINCHAR,

yiybhINCHAR,

riqINDATE,

yaopmcINCHAR,

yaopslINNUMBER,

xiaofjeINNUMBER,

xuhINCHAR

)

AS

oldmoneyNUMBER;

BEGIN

SELECTcsmoneyINTOoldmoneyFROMconsumeWHEREconnum=xuh;

UPDATEconsumeSETcno=yibkh,hno=yiybh,

csdate=riq,

mname=yaopmc,mnum=yaopsl,csmoney=xiaofjeWHEREconnum=xuh;

UPDATEcardSETcmoney=cmoney+oldmoney-xiaofjeWHEREcno=yibkh;

DBMS_OUTPUT.PUT_LINE(‘當(dāng)“consume”表中更改消費(fèi)金額時(shí),將“card”表中相應(yīng)卡號(hào)上的余額隨之調(diào)整!’);

END;

其他存儲(chǔ)過程請(qǐng)查看光盤。9.2技術(shù)要點(diǎn)9.2.1JDBC概述

1.JDBC概念

JDBC(JavaDatabaseConnectivity)與微軟的ODBC(OpenDatabaseConnectivity)類似,都是訪問各種數(shù)據(jù)庫的接口。不同的是,JDBC專為Java提供訪問數(shù)據(jù)庫的接口,即Java通過JDBC可以執(zhí)行SQL語句,以實(shí)現(xiàn)對(duì)多種數(shù)據(jù)庫的操作。JDBC是一種技術(shù)標(biāo)準(zhǔn),它是一組用Java語言寫的類和接口組成的,可以為多種關(guān)系數(shù)據(jù)庫(如Access、Server2000、Oracle、Sybase等)提供統(tǒng)一訪問。

Java應(yīng)用程序使用JDBC調(diào)用數(shù)據(jù)庫系統(tǒng)(DBMS),JDBC對(duì)應(yīng)用程序來說就是Java方法的集合。JDBC方法調(diào)用都封裝了相應(yīng)的數(shù)據(jù)庫驅(qū)動(dòng)程序,驅(qū)動(dòng)程序是JDBC接口說明的實(shí)現(xiàn)。所以,在調(diào)用JDBC之前,首先要加載相應(yīng)的驅(qū)動(dòng)程序。

2.JDBC的用途

JDBC是一種底層API,它可以直接調(diào)用SQL語句,也是構(gòu)造高級(jí)API和數(shù)據(jù)庫開發(fā)工具的基礎(chǔ)。大體來說,JDBC主要有3方面的用途:

(1)與數(shù)據(jù)庫建立連接。

(2)向數(shù)據(jù)庫發(fā)送SQL語句。

(3)處理數(shù)據(jù)庫操作返回的結(jié)果。9.2.2使用JDBC訪問數(shù)據(jù)庫

本案例采用具有與平臺(tái)無關(guān)性,適用范圍廣泛的“thin模式”(客戶端OracleJDBCthin驅(qū)動(dòng)程序)連接數(shù)據(jù)庫。這種OracleJDBC驅(qū)動(dòng)程序?qū)儆凇氨緳C(jī)—協(xié)議純Java驅(qū)動(dòng)程序”類的JDBC驅(qū)動(dòng)程序。在使用時(shí),會(huì)將客戶機(jī)的JDBC調(diào)用轉(zhuǎn)換為特定數(shù)據(jù)庫驅(qū)動(dòng)程序的調(diào)用,進(jìn)而操作數(shù)據(jù)庫,因此必須先在客戶機(jī)上安裝好特定的數(shù)據(jù)庫的數(shù)據(jù)訪問驅(qū)動(dòng)程序才能使用。

由于本系統(tǒng)采用的是Oracle10g數(shù)據(jù)庫,數(shù)據(jù)訪問驅(qū)動(dòng)程序在Oracle安裝路徑下的“\product\10.1.0\db_1\jdbc\lib”文件名為“classes12.jar”中,在開發(fā)項(xiàng)目前需將“classes12.jar”復(fù)制到JDK安裝路徑下的“\jre\lib\ext”中,確保Eclipse環(huán)境在使用“默認(rèn)系統(tǒng)類庫”時(shí)可以找到JDBC驅(qū)動(dòng)。

1.使用JDBC與數(shù)據(jù)庫建立連接

(1)加載JDBC驅(qū)動(dòng)。為了連接到某個(gè)數(shù)據(jù)庫,首先要在應(yīng)用程序中加載JDBC驅(qū)動(dòng)。這里用Java類加載器進(jìn)行加載,方法如下:

Class.forName(“oracle.jdbc.driver.OracleDriver”);

Class是包java.sql中的一個(gè)類,該類通過調(diào)用它的靜態(tài)方法forName()完成加載驅(qū)動(dòng)程序。

(2)建立連接。成功加載JDBC驅(qū)動(dòng)程序后,負(fù)責(zé)管理JDBC驅(qū)動(dòng)程序的類DriverManager就會(huì)識(shí)別加載的驅(qū)動(dòng)程序,接著就可以與指定的數(shù)據(jù)庫建立連接了。首先使用java.sql中的Connection類聲明一個(gè)對(duì)象,再使用DriverManager類的靜態(tài)方法getConnection()來創(chuàng)建這個(gè)數(shù)據(jù)庫連接對(duì)象,方法如下:

Stringurl=“jdbc:oracle:thin:@主機(jī)IP:1521:ygbx”

//“ygbx”為數(shù)據(jù)庫的SID

StringuserName=“ygbx_user”;

//登錄數(shù)據(jù)庫的用戶名

Stringpassword=“ygbx”;

//登錄數(shù)據(jù)庫的密碼

Connectioncon=DriverManager.getConnection(url,userName,password); //創(chuàng)建一個(gè)數(shù)據(jù)庫連接對(duì)象

2.向數(shù)據(jù)庫發(fā)送SQL語句

JDBC提供了Statement、PrepareStatement和CallableStatement3種類,利用它們聲明的對(duì)象來實(shí)現(xiàn)查詢語句的發(fā)送執(zhí)行。CallableStatement繼承了PreparedStatement,而PreparedStatement繼承了Statement,分別用于發(fā)送不同類型的SQL語句:Statement對(duì)象用于執(zhí)行簡(jiǎn)單的不含參數(shù)的SQL語句;PreparedStatement對(duì)象用于執(zhí)行帶有IN類型參數(shù)的預(yù)編譯過的SQL語句;CallableStatement對(duì)象用于執(zhí)行數(shù)據(jù)庫的存儲(chǔ)過程或存儲(chǔ)函數(shù)。

這里只介紹Statement對(duì)象和CallableStatement對(duì)象的簡(jiǎn)單使用,PreparedStatement對(duì)象的使用請(qǐng)讀者自己查閱相關(guān)資料。

(1)創(chuàng)建和使用Statement對(duì)象。

同某個(gè)數(shù)據(jù)庫建立連接后,就可以創(chuàng)建一個(gè)Statement對(duì)象,具體方法如下:

Statementstmt=con.createStatement();

創(chuàng)建了一個(gè)Statement對(duì)象后,就可以使用這個(gè)對(duì)象提供的常用方法(executeUpdate(Stringsql)、executeQuery(Stringsql)、execute(Stringsql))執(zhí)行SQL語句,完成對(duì)數(shù)據(jù)表的插入、刪除、修改及查詢等操作。具體方法如下:

Stringsql=“insertstaff(sno,sname,ssex,sbirthday)values(‘00111’,‘liying’,‘男’,‘9-9月-79’)”;

stmt.executeUpdate(sql);

//向“staff”表中插入數(shù)據(jù)

ResultSetrs=stmt.executeQuery("selectsno,sname,ssex,sbirthdayfromstaff");//查詢“staff”表中的數(shù)據(jù)

(2)創(chuàng)建和使用CallableStatement對(duì)象。

PreparedStatement對(duì)象繼承了Statement提供的3種常用方法,但有所變動(dòng),其中的參數(shù)被去掉了,即executeUpdate()、executeQuery()、execute(),而CallableStatement對(duì)象繼承了前面兩種類提供的所有方法,用于執(zhí)行數(shù)據(jù)庫的存儲(chǔ)過程或存儲(chǔ)函數(shù)。存儲(chǔ)過程或存儲(chǔ)函數(shù)在數(shù)據(jù)庫端存儲(chǔ),調(diào)用存儲(chǔ)過程或存儲(chǔ)函數(shù)則包含在CallableStatement對(duì)象中。使用CallableStatement對(duì)象前必須知道DBMS是否支持存儲(chǔ)過程或存儲(chǔ)函數(shù),并且支持什么樣的存儲(chǔ)過程或存儲(chǔ)函數(shù)。例如:

CallableStatementcstmt=con.prepareCall(“{callcunkuaninsert_pro(?,?,?,?)}”);

cstmt.setString(1,‘8-8月-2007’);

cstmt.setString(2,‘219800010100011’);

cstmt.setInt(3,100);

cstmt.setString(4,‘B198800101’);

cstmt.execute();//執(zhí)行“cunkuaninsert_pro”存儲(chǔ)過程

3.處理數(shù)據(jù)庫操作返回的結(jié)果

JDBC接收結(jié)果是通過ResultSet對(duì)象來實(shí)現(xiàn)的,通常是Statement對(duì)象執(zhí)行而產(chǎn)生的結(jié)果集。一個(gè)ResultSet對(duì)象包含了執(zhí)行某個(gè)SQL語句后滿足條件的所有的記錄。此外,ResultSet對(duì)象提供了用來從結(jié)果集中獲取數(shù)據(jù)的一組方法,如表9-1所示,利用這些方法可以將查詢所得到的數(shù)據(jù)保存到變量中,以便以各種格式輸出給用戶。例如:

while(rs.next())

{??System.out.print(“”+rs.getString(1));

System.out.print(“”+rs.getString(2));

System.out.print(“”+rs.getString(3));

System.out.print(“”+rs.getDate(4));

}

4.關(guān)閉創(chuàng)建的各個(gè)對(duì)象

使用與數(shù)據(jù)庫相關(guān)的對(duì)象非常耗用內(nèi)存,雖然Java提供的自動(dòng)回收機(jī)制會(huì)清除長(zhǎng)時(shí)間不用的對(duì)象,但為了保證程序良好的運(yùn)行性能,還是應(yīng)該養(yǎng)成主動(dòng)關(guān)閉不再需要的對(duì)象的習(xí)慣。因此,在完成數(shù)據(jù)庫訪問后要關(guān)閉與數(shù)據(jù)庫有關(guān)的所有對(duì)象,例如:

rs.close();

stmt.close();

cstmt.close();

conn.close();9.2.3本案例的數(shù)據(jù)庫訪問

管理信息系統(tǒng)的主要功能就是管理數(shù)據(jù),通常在前臺(tái)界面中可以方便地錄入數(shù)據(jù),在程序中來獲取這些數(shù)據(jù),并最終把它們發(fā)送到數(shù)據(jù)庫中保存起來,然后通過數(shù)據(jù)庫來組織、維護(hù)這些數(shù)據(jù),進(jìn)而使用戶可以很方便、快速地得到自己想要的信息。因此,員工醫(yī)療保險(xiǎn)管理信息系統(tǒng)的實(shí)現(xiàn)要頻繁地與數(shù)據(jù)庫進(jìn)行交互,本案例為了規(guī)范代碼、提高代碼的復(fù)用性、減少代碼的維護(hù)成本,將Java與Oracle數(shù)據(jù)庫的連接、訪問數(shù)據(jù)庫的各種操作相關(guān)的方法都封裝在類“DBManage”中,并打包在“dbase”里?!癉BManage”中包含了4個(gè)成員變量和5個(gè)成員方法,如圖9-2所示。圖9-2DBManage類及成員

DBManage類的成員變量說明:

(1)?conQ:聲明為Connection類的對(duì)象。

(2)?cstmt:聲明為CallableStatement類的對(duì)象。

(3)?rsetQ:聲明為ResultSet類的對(duì)象。

(4)?stmtQ:聲明為Statement類的對(duì)象。

DBManage類的成員方法說明:

(1)?DBManage():構(gòu)造方法,用于實(shí)例化DBManage對(duì)象。

(2)?getConn():用于建立數(shù)據(jù)庫連接,返回Connection對(duì)象。

(3)?doQuery():用于執(zhí)行“SELECT”引導(dǎo)的SQL語句,返回ResultSet結(jié)果集對(duì)象。

(4)?doChange():用于執(zhí)行“INSERT、UPDATE、DELETE”引導(dǎo)的SQL語句,返回影響的行數(shù)。

(5)?doProcedure():用于執(zhí)行存儲(chǔ)過程。

(6)?closeAll():用于關(guān)閉連接對(duì)象等。

關(guān)于以上方法的具體實(shí)現(xiàn)請(qǐng)查看源代碼中的“ygbx\main\DBManage.java”文件。

有了DBManage類提供的6種方法,我們?cè)诔绦蚶飳?shí)現(xiàn)數(shù)據(jù)庫的訪問就變得很容易了。例如,向“staff”表中添加一條新記錄的方法如下:

Stringsql=“insertintostaffvalues(‘00101’,‘楊一’,‘女’,‘1-1月-1978’,‘昆山路100號(hào)’,‘88779966’,‘319860021400057’,‘B200700001’)”;

DBManagedb=newDBManage();

try

{db.doChange(sql);

db.closeAll();

}

catch(Exceptionee){}9.3本案例的解決方案本案例涉及的功能較多,代碼量較大,為了方便代碼的閱讀與維護(hù),將邏輯相關(guān)的類封裝在同一個(gè)包中,這樣就使得整個(gè)案例的結(jié)構(gòu)清晰明了。本案例中每個(gè)功能模塊都對(duì)應(yīng)了一個(gè)包結(jié)構(gòu),另外,還有一個(gè)封裝了“DBManage”類的“dbase”包和一個(gè)封裝了登錄界面及主界面的“main”包。所有的這些包存放在“ygbx”項(xiàng)目空間中,解決方案如圖9-3所示。圖9-3中,JRESystemLibrary是使用Eclispe創(chuàng)建Java項(xiàng)目時(shí)自動(dòng)創(chuàng)建的,里面包含了程序運(yùn)行時(shí)所需要的類庫。圖9-3本案例的解決方案9.4案?例?的?實(shí)?現(xiàn)實(shí)現(xiàn)系統(tǒng)登錄及主界面相關(guān)的類封裝在“main”包中,如圖9-4所示。圖9-4“main”包的結(jié)構(gòu)

“main”包中包含3個(gè)文件,具體說明如下:

(1)?Denglu.java:提供系統(tǒng)登錄功能,負(fù)責(zé)根據(jù)不同用戶(管理員和普通用戶)的權(quán)限,進(jìn)入不同的系統(tǒng)操作界面。

(2)?MyFrame.java:提供管理員成功登錄后進(jìn)入的主界面及所擁有的功能。

(3)?MyFrame1.java:提供普通用戶成功登錄后進(jìn)入的主界面及所擁有的功能。

系統(tǒng)登錄界面如圖9-5所示。圖9-5系統(tǒng)登錄界面

單擊“登錄”按鈕,轉(zhuǎn)到Denglu.java文件中的actionPerformed(ActionEvente)方法執(zhí)行,根據(jù)前臺(tái)提供的用戶號(hào)和密碼,程序到數(shù)據(jù)庫中查找是否有此用戶的相關(guān)信息。如果用戶號(hào)和密碼正確,就判斷此用戶的權(quán)限,根據(jù)判斷得到的用戶權(quán)限是管理員還是普通用戶,系統(tǒng)轉(zhuǎn)入不同顯示界面。具體實(shí)現(xiàn)如下:

如果是管理員權(quán)限,那么系統(tǒng)進(jìn)入如圖9-6所示的管理員主界面。

如果是普通用戶權(quán)限,那么系統(tǒng)進(jìn)入如圖9-7所示的普通用戶主界面。圖9-6管理員主界面圖9-7普通用戶主界面

管理員主界面的背景色是黃色(此處為淺灰色)的,而普通用戶主界面的背景色是藍(lán)色(此處為深灰色)的,這是程序運(yùn)行起來外觀上的不同。兩者功能上的主要差別在于,普通用戶身份進(jìn)入的系統(tǒng)要比管理員身份進(jìn)入的系統(tǒng)在系統(tǒng)功能上要少許多。例如,圖9-7中“用戶管理”中的“添加新用戶”菜單項(xiàng)是灰色的,表明普通用戶不具備“添加新用戶”的

功能。

由于篇幅有限,其他模塊的具體實(shí)現(xiàn)這里不再贅述,請(qǐng)查看光盤。9.5小結(jié)本章對(duì)Oracle數(shù)據(jù)庫在軟件開發(fā)中的應(yīng)用作了介紹,重點(diǎn)介紹了Java如何連接Oracle數(shù)據(jù)庫,如何操作Oracle數(shù)據(jù)庫。通過本章的學(xué)習(xí),讀者應(yīng)進(jìn)一步了解以下內(nèi)容:

(1)在實(shí)際應(yīng)用設(shè)計(jì)過程中經(jīng)常需要根據(jù)實(shí)際情況為應(yīng)用系統(tǒng)添加視圖、序列、存儲(chǔ)過程、存儲(chǔ)函數(shù)或觸發(fā)器等數(shù)據(jù)庫對(duì)象,以使數(shù)據(jù)庫設(shè)計(jì)更加完善。

(2)?Java訪問數(shù)據(jù)庫的主要步驟:首先通過Class類的forName()方法加載數(shù)據(jù)庫驅(qū)動(dòng),參數(shù)為驅(qū)動(dòng)路徑;其次通過DriverManager類

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論