當前位置:首頁 » 存儲配置 » mysql存儲過程的調用

mysql存儲過程的調用

發布時間: 2024-09-10 10:10:32

1. 求助java調用MYsql存儲過程的問題

1.資料庫存儲過程:簡單滴說,存儲過程就是存儲在資料庫中的一個程序。

2..資料庫存儲過程作用:

第一:存儲過程因為SQL語句已經預編繹過了,因此運行的速度比較快

第二:存儲過程可以接受參數、輸出參數、返回單個或多個結果集以及返回值。可以向程序返回錯誤原因。

第三:存儲過程運行比較穩定,不會有太多的錯誤。只要一次成功,以後都會按這個程序運行。

第四:存儲過程主要是在伺服器上運行,減少對客戶機的壓力。

第五:存儲過程可以包含程序流、邏輯以及對資料庫的查詢。同時可以實體封裝和隱藏了數據邏輯。

第六:存儲過程可以在單個存儲過程中執行一系列 SQL 語句。

第七:存儲過程可以從自己的存儲過程內引用其它存儲過程,這可以簡化一系列復雜語句。

此外,如果多條SQL語句執行過程中,過程環節返回了數據作為後面環節的輸入數據,如果直接通過

SQL語句執行,勢必導致大量的數據通過網路返回到客戶機,並在客戶機運算;如果封裝在存儲過程中,

則將運算放在伺服器進行,不但減少了客戶機的壓力,同時也減少了網路流量,提高了執行的效率。


3.mysql存儲過程:

MySQL5存儲過程,用得人好像不多。按照資料庫設計原理來講,存儲過程是在db server上預編譯的,所以查詢速度會比較起純SQL語句快很多。可能是現在流行OO,導至存儲過程使用的餘地大打折扣。但如果從效果上來講,用存儲過程來實現業務規則所帶得DB SERVER壓力,比用JAVA類實現業務規則所帶來的WEB SERVER壓力要小。當然存儲過程也不應濫用,象普通的insert、update之類的語句就不需要使用存儲過程了。

MySQL創建procure的語法與sql server/Oracle差別較大。
例1:傳入參數的procere

create procere usp_test(param varchar(20)
select * from talbeName where column=param

例2:更新表的procere

create procere usp_test2 (t varchar(20))
begin
set xname = 'test';
update table set column = xname where column1=t;
end


MySQL創建存儲過程時不帶as,而且()不能省略,即便是沒有傳入參數。這一點象sql server或是oracle那樣直觀,而且聲明變數時直接用declare,不用加的@或@@(in out變數除外)。還有一點是很怪的語法,如果是以「select」為開頭的存儲過程,是不能加"begin end"的。"begin end"表示多條SQL語句的復合體。

當然,事實上幾乎沒有哪款資料庫是完全符合SQL3標準的,多少都含有自己的一些成份裡面,這也造成使用存儲過程會使程序的可移性降低。

調用procere
MySQL使用call關鍵字。例:call usp_test('test');而不是execute,同樣()是不能省略的。
創建完procere後,再看看java是如何調用procere的。
Connection conn = null;

CallableStatementcstmt=null;
ResultSetrs=null;
try{
conn=DbConn.getDbConn();//getpoolconn
CallableStatementcstmt=conn.prepareCall("{callusp_test(?)}");
call.setString(1,"test");
rs=call.executeQuery();
while(rs.next()){
Stringte=rs.getString(1);
System.out.println("te:"+te);
}
}catch(Exceptione){
System.out.println("e:"+e);
}finally{
try{
rs.close();
cstmt.close();
conn.close();
}catch(Exceptionex){
System.out.println("ex:"+ex);
}
}

這里使用的是"{call usp_test()}"來調用存儲過程。同時也可以編程傳入參數,進行查詢。

2. MySQL裡面sql語句調用存儲過程,該如何寫

這樣:

CREATEPROCEDUREsp_add(a int, b int,outc int)

begin

set c=a+ b;

end;

調用過程:

call sp_add (1,2,@a);

select @a;

(2)mysql存儲過程的調用擴展閱讀:

注意事項

存儲過程(stored procere)是一組為了完成特定功能的SQL語句集合,經編譯後存儲在伺服器端的資料庫中,利用存儲過程可以加速SQL語句的執行。

存儲過程分為系統存儲過程和自定義存儲過程。

系統存儲過程在master資料庫中,但是在其他的資料庫中可以直接調用,並且在調用時不必在存儲過程前加上資料庫名,因為在創建一個新資料庫時,系統存儲過程在新的資料庫中會自動創建。

自定義存儲過程,由用戶創建並能完成某一特定功能的存儲過程,存儲過程既可以有參數又有返回值,但是它與函數不同,存儲過程的返回值只是指明執行是否成功,並不能像函數那樣被直接調用,只能利用execute來執行存儲過程。

創建存儲過程

SQL Server創建存儲過程:

create procere 過程名

@parameter 參數類型

@parameter 參數類型

。。。

as

begin

end

執行存儲過程:execute 過程名

3. mysql帶參數的存儲過程怎麼調用

調用MySQL存儲過程使用CALL命令
語法:CALL 存儲過程名(參數1[,參數2..]]);
例如:
Call myPro1;
Call myPro2('001');

4. mysql怎麼調試存儲過程

mysql調試存儲過程具體方法:

在你的存儲過程中加入如下語句:
SELECT 變數1,變數2;

然後用mysql自帶的cmd程序進入mysql> 下。
call 你的存儲過程名(輸入參數1,@輸出參數);(注:這里幫助下新同學,如果你的存儲過程有輸出變數,那麼在這里只需要加 @ 然後跟任意變數名即可);
即可發現你的變數值被列印到了cmd下

熱點內容
安卓公測版哪個好 發布:2024-11-24 21:15:58 瀏覽:873
androidforvs2010 發布:2024-11-24 21:06:05 瀏覽:286
安裝MySqllinux 發布:2024-11-24 21:05:51 瀏覽:326
聯通網洛盒的密碼在哪裡 發布:2024-11-24 21:05:12 瀏覽:181
牌順編程 發布:2024-11-24 20:56:23 瀏覽:729
金庫門鎖如何配置 發布:2024-11-24 20:55:46 瀏覽:953
如何編寫伺服器安裝文檔 發布:2024-11-24 20:46:09 瀏覽:471
什麼安卓手機全方面可以超過蘋果 發布:2024-11-24 20:30:35 瀏覽:801
面窩麻將腳本 發布:2024-11-24 20:29:16 瀏覽:235
安卓手機處理器八核是什麼意思 發布:2024-11-24 20:29:11 瀏覽:176