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

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

ID:61482770

大?。?2.00 KB

頁數(shù):8頁

時間:2021-02-04

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

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

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

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

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

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

5、2)ASBEGIN?INSERTINTOHYQ.B_ID(I_ID,I_NAME)S(PARA1,PARA2);ENDTESTA;然后呢,在java里調(diào)用時就用下面的代碼: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();?????}?

當前文檔最多預覽五頁,下載文檔查看全文

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

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