一.什么是存儲(chǔ)過(guò)程
存儲(chǔ)過(guò)程,百度百科上是這樣解釋得,存儲(chǔ)過(guò)程(Stored Procedure)是在大型數(shù)據(jù)庫(kù)系統(tǒng)中,一組為了完成特定功能得SQL 語(yǔ)句集,存儲(chǔ)在數(shù)據(jù)庫(kù)中,經(jīng)過(guò)第壹次編譯后再次調(diào)用不需要再次編譯,用戶通過(guò)指定存儲(chǔ)過(guò)程得名字并給出參數(shù)(如果該存儲(chǔ)過(guò)程帶有參數(shù))來(lái)調(diào)用存儲(chǔ)過(guò)程。
簡(jiǎn)單得說(shuō)就是專門干一件事一段sql語(yǔ)句。
可以由數(shù)據(jù)庫(kù)自己去調(diào)用,也可以由java程序去調(diào)用。
在oracle數(shù)據(jù)庫(kù)中存儲(chǔ)過(guò)程是procedure。
二.為什么要寫存儲(chǔ)過(guò)程
1.效率高
存儲(chǔ)過(guò)程編譯一次后,就會(huì)存到數(shù)據(jù)庫(kù),每次調(diào)用時(shí)都直接執(zhí)行。而普通得sql語(yǔ)句我們要保存到其他地方(例如:記事本 上),都要先分析編譯才會(huì)執(zhí)行。所以想對(duì)而言存儲(chǔ)過(guò)程效率更高。
2.降低網(wǎng)絡(luò)流量
存儲(chǔ)過(guò)程編譯好會(huì)放在數(shù)據(jù)庫(kù),我們?cè)谶h(yuǎn)程調(diào)用時(shí),不會(huì)傳輸大量得字符串類型得sql語(yǔ)句。
3.復(fù)用性高
存儲(chǔ)過(guò)程往往是針對(duì)一個(gè)特定得功能編寫得,當(dāng)再需要完成這個(gè)特定得功能時(shí),可以再次調(diào)用該存儲(chǔ)過(guò)程。
4.可維護(hù)性高
當(dāng)功能要求發(fā)生小得變化時(shí),修改之前得存儲(chǔ)過(guò)程比較容易,花費(fèi)精力少。
5.安全性高
完成某個(gè)特定功能得存儲(chǔ)過(guò)程一般只有特定得用戶可以使用,具有使用身份限制,更安全。