mysql儲存過程

2022-05-04 02:18:09 字數 1462 閱讀 2075

資料庫的儲存過程可以減少程式**的重複性,使程式更加簡潔易懂

最近在學習mysql儲存過程中遇到了一些有趣的問題:

1、在寫儲存過程的時候,儲存過程名後面一定要加上括號,就算沒有引數也要加,不然就會報錯

2、在呼叫儲存過程時,沒有引數的儲存過程可以加括號也可以不加括號

3、由於mysql是不區分大小寫的,這點跟sql不一樣。所以在給儲存過程入參起名字的時候不要以列名的小寫字母來取,不然就會出現原本是更改或操作一條記錄的,結果則修改了整個表

1

create

procedure update_name(in name varchar(20), in id int)2

begin

3update

student

4set sname=name where id=

id;5

end

這段**本應該修改一條記錄,結果會把整個表的記錄都修改。由於不區分大小寫,所以id=id一直為真。

4、在mybatis程式中呼叫儲存過程的主要**:

無參的儲存過程呼叫比較簡單:

1

<

select id="selectallstudent" statementtype="callable">

2cdata[ 34

]]>

5select

>

這裡的id一定要與介面中一樣。

有引數的儲存過程呼叫有兩種方法:

第一種:

xml中:

1

<

select id="updatenamebyid" statementtype="callable">

2cdata[

3,#)}

4]]>

5select

>

dao層介面中:

1 void updatenamebyid(@param("id")int id,@param("name")string psid); 

引數名必須對應,不要會出現繫結失敗的錯誤。

第二種:

xml中:

123

4parametermap>56

7<

select id="updatenamebyid" parametermap="update_name" statementtype="callable">

8cdata[ 910

]]>

11select

>

dao層介面中:

1 void updatenamebyid(map map);

這裡的parametermap的引數名不能為空,不然會出錯

5、在呼叫返回結果集的儲存過程時,應該有對應的resultmap,該引數也不能為空,不然會出現莫名其妙的錯誤。伺服器在啟動時不會發現這個錯誤,但是在測試時會出現

mysql儲存過程 MySQL儲存過程

在本節中,您將逐步學習如何在mysql中編寫和開發儲存過程。首先,我們向您介紹儲存過程的概念,並討論何時使用它。然後,展示如何使用過程 的基本元素,如建立儲存過程的語句,if else,case,loop,儲存過程的引數。下面每個教程都包含了易於理解的示例和詳細的說明。如果您瀏覽並學習所有教程,您可...

mysql 儲存過程 mysql 儲存過程

建立 為建立儲存過程的結束標誌,使用delimiter 可更改標誌 格式create procedure begin sqlend create procedure myprocedure in param integer begin select from tb role where tb rol...

mysql 儲存過程 MySQL儲存過程

目錄 儲存過程 簡介是一組為了完成特定功能的sql語句集合 比傳統sql速度更快 執行效率更高 儲存過程的優點 執行一次後,會將生成的二進位制 駐留緩衝區,提高執行效率 sql語句加上控制語句的集合,靈活性高 在伺服器端儲存,客戶端呼叫時,降低網路負載 可多次重複被呼叫,可隨時修改,不影響客戶端呼叫...