版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院老人訪客管理制度
- 養(yǎng)老院老人生活?yuàn)蕵坊顒?dòng)組織人員管理制度
- 養(yǎng)老院老人康復(fù)理療制度
- 養(yǎng)老院綠化環(huán)境維護(hù)制度
- 養(yǎng)老院?jiǎn)T工培訓(xùn)與考核制度
- 公共交通運(yùn)營(yíng)成本控制制度
- 攝影技術(shù)與技巧
- 2026年志愿服務(wù)管理知識(shí)考試題含答案
- 2026年跨境電商促銷活動(dòng)設(shè)計(jì)邏輯測(cè)試題目及答案
- 工藝技術(shù)創(chuàng)新大賽
- 標(biāo)準(zhǔn)維修維護(hù)保養(yǎng)服務(wù)合同
- 專題08解題技巧專題:圓中輔助線的作法壓軸題三種模型全攻略(原卷版+解析)
- GB/T 4706.9-2024家用和類似用途電器的安全第9部分:剃須刀、電理發(fā)剪及類似器具的特殊要求
- 2019年急性腦梗死出血轉(zhuǎn)化專家共識(shí)解讀
- 電力工程有限公司管理制度制度范本
- 科研倫理與學(xué)術(shù)規(guī)范-課后作業(yè)答案
- 安全防范系統(tǒng)安裝維護(hù)員題庫
- mbd技術(shù)體系在航空制造中的應(yīng)用
- 苗木育苗方式
- 通信原理-脈沖編碼調(diào)制(PCM)
- 省直單位公費(fèi)醫(yī)療管理辦法實(shí)施細(xì)則
評(píng)論
0/150
提交評(píng)論