java調(diào)用存儲(chǔ)過程詳解.doc

java調(diào)用存儲(chǔ)過程詳解.doc

ID:61482770

大小:22.00 KB

頁數(shù):8頁

時(shí)間:2021-02-04

java調(diào)用存儲(chǔ)過程詳解.doc_第1頁
java調(diào)用存儲(chǔ)過程詳解.doc_第2頁
java調(diào)用存儲(chǔ)過程詳解.doc_第3頁
java調(diào)用存儲(chǔ)過程詳解.doc_第4頁
java調(diào)用存儲(chǔ)過程詳解.doc_第5頁
資源描述:

《java調(diào)用存儲(chǔ)過程詳解.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、1、什么是存儲(chǔ)過程。存儲(chǔ)過程是數(shù)據(jù)庫服務(wù)器端的一段程序,它有兩種類型。一種類似于SELECT查詢,用于檢索數(shù)據(jù),檢索到的數(shù)據(jù)能夠以數(shù)據(jù)集的形式返回給客戶。另一種類似于INSERT或DELETE查詢,它不返回?cái)?shù)據(jù),只是執(zhí)行一個(gè)動(dòng)作。有的服務(wù)器允許同一個(gè)存儲(chǔ)過程既可以返回?cái)?shù)據(jù)又可以執(zhí)行動(dòng)作。2、什么時(shí)候需要用存儲(chǔ)過程  如果服務(wù)器定義了存儲(chǔ)過程,應(yīng)當(dāng)根據(jù)需要決定是否要用存儲(chǔ)過程。存儲(chǔ)過程通常是一些經(jīng)常要執(zhí)行的任務(wù),這些任務(wù)往往是針對(duì)大量的記錄而進(jìn)行的。在服務(wù)器上執(zhí)行存儲(chǔ)過程,可以改善應(yīng)用程序的性能。這是因?yàn)椋?服務(wù)器往往具有強(qiáng)大的計(jì)算能力

2、和速度。.避免把大量的數(shù)據(jù)下載到客戶端,減少網(wǎng)絡(luò)上的傳輸量?! ±?,假設(shè)一個(gè)應(yīng)用程序需要計(jì)算一個(gè)數(shù)據(jù),這個(gè)數(shù)據(jù)需要涉及到許多記錄。如果不使用存儲(chǔ)過程的話,把這些數(shù)據(jù)下載到客戶端,導(dǎo)致網(wǎng)絡(luò)上的流量劇增。  不僅如此,客戶端可能是一臺(tái)老掉牙的計(jì)算機(jī),它的運(yùn)算速度很慢。而改用存儲(chǔ)過程后,服務(wù)器會(huì)很快地把數(shù)據(jù)計(jì)算出來,并且只需傳遞一個(gè)數(shù)據(jù)給客戶端,其效率之高是非常明顯的。3、存儲(chǔ)過程的參數(shù)  要執(zhí)行服務(wù)器上的存儲(chǔ)過程,往往要傳遞一些參數(shù)。這些參數(shù)分為四種類型:  第一種稱為輸入?yún)?shù),由客戶程序向存儲(chǔ)過程傳遞值?! 〉诙N稱為輸出參數(shù),由存儲(chǔ)

3、過程向客戶程序返回結(jié)果。  第三種稱為輸入/輸出參數(shù),既可以由客戶程序向存儲(chǔ)過程傳遞值,也可以由存儲(chǔ)過程向客戶程序返回結(jié)果?! 〉谒姆N稱為狀態(tài)參數(shù),由存儲(chǔ)過程向客戶程序返回錯(cuò)誤信息?! ∫f明的是,并不是所有的服務(wù)器都支持上述四種類型的參數(shù),例如,InterBase就不支持狀態(tài)參數(shù)。4、oracle存儲(chǔ)過程的基本語法?1.基本結(jié)構(gòu)CREATEORREPLACEPROCEDURE存儲(chǔ)過程名字(??參數(shù)1INNUMBER,??參數(shù)2INNUMBER)IS變量1INTEGER:=0;變量2DATE;BEGINEND存儲(chǔ)過程名字2.SELEC

4、TINTOSTATEMENT?將select查詢的結(jié)果存入到變量中,可以同時(shí)將多個(gè)列存儲(chǔ)多個(gè)變量中,必須有一條?記錄,否則拋出異常(如果沒有記錄拋出NO_DATA_FOUND)?例子:?BEGIN?SELECTcol1,col2into變量1,變量2FROMtypestructwherexxx;?EXCEPTION?WHENNO_DATA_FOUNDTHEN???xxxx;?END;一:無返回值的存儲(chǔ)過程存儲(chǔ)過程為:CREATEORREPLACEPROCEDURETESTA(PARA1INVARCHAR2,PARA2INVARCHAR

5、2)ASBEGIN?INSERTINTOHYQ.B_ID(I_ID,I_NAME)S(PARA1,PARA2);ENDTESTA;然后呢,在java里調(diào)用時(shí)就用下面的代碼:packagecom.hyq.src;importjava.sql.*;importjava.sql.ResultSet;publicclassTestProcedureOne{publicTestProcedureOne(){}publicstaticvoidmain(String[]args){??Stringdriver="oracle.jdbc.driver

6、.OracleDriver";??StringstrUrl="jdbc:oracle:thin:@127.0.0.1:1521:hyq";??Statementstmt=null;??ResultSetrs=null;??Connectionconn=null;??CallableStatementcstmt=null;??try{???Class.forName(driver);???conn=DriverManager.getConnection(strUrl,"hyq","hyq");???CallableStatementpr

7、oc=null;???proc=conn.prepareCall("{callHYQ.TESTA(?,?)}");???proc.setString(1,"100");???proc.setString(2,"TestOne");???proc.execute();??}??catch(SQLExceptionex2){???ex2.printStackTrace();??}??catch(Exceptionex2){???ex2.printStackTrace();??}??finally{???try{????if(rs!=nul

8、l){?????rs.close();?????if(stmt!=null){??????stmt.close();?????}?????if(conn!=null){??????conn.close();?????}?

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。