java存储过程与sql语句_存储过程与SQL语句怎么选择
應用存儲過程的優點:
1.具有更好的性能
存儲過程是預編譯的,只在創建時進行編譯,以后每次執行存儲過程都不需再重新編譯,
而一般 SQL 語句每執行一次就編譯一次,因此使用存儲過程可以提高數據庫執行速度。
2.功能實現更加靈活
存儲過程中可以應用條件判斷和游標等語句,有很強的靈活性,可以直接調用數據庫的一些內置函數,完成復雜的判斷和較復雜的運算。
3.減少網絡傳輸
復雜的業務邏輯需要多條 SQL 語句,當客戶機和服務器之間的操作很多時,
將產生大量的網絡傳輸。如果將這些操作放在一個存儲過程中,那么客戶機和服務器之間的網絡傳輸就會減少,降低了網絡負載。
4.具有更好的安全性
(1)數據庫管理人員可以更好的進行權限控制,存儲過程可以屏蔽對底層數據庫對象的直接訪問,使用 EXECUTE 權限調用存儲過程,無需擁有訪問底層數據庫對象的顯式權限。
(2)在通過網絡調用過程時,只有對執行過程的調用是可見的。無法看到表和數據庫對象名稱,不能嵌入SQL 語句,有助于避免 SQL 注入攻擊。
存儲過程的弊端:
1.架構不清晰,不夠面向對象
存儲過程不太適合面向對象的設計,無法采用面向對象的方式將業務邏輯進行封裝,
業務邏輯在存儲層實現,增加了業務和存儲的耦合,代碼的可讀性也會降低,
2.開發和維護要求比較高
存儲過程的編寫直接依賴于開發人員,如果業務邏輯改動較多,需要頻繁直接操作數據庫,
大量業務降維到數據庫,很多異常不能在代碼中捕獲,出現問題較難排查,需要數據庫管理人員的幫助。
3.可移植性差
過多的使用存儲過程會降低系統的移植性。在對存儲進行相關擴展時,可能會增加一些額外的工作。
存儲過程與SQL語句如何抉擇:
普通的項目開發中,不建議大量使用存儲過程,對比SQL語句,存儲過程適用于業務邏輯復雜,比較耗時,同時請求量較少的操作,例如后臺大批量查詢、定期更新等。
(1)當一個事務涉及到多個SQL語句時或者涉及到對多個表的操作時可以考慮應用存儲過程
(2)在一個事務的完成需要很復雜的商業邏輯時可以考慮應用存儲過程
(3)比較復雜的統計和匯總可以考慮應用后臺存儲過程
總結
以上是生活随笔為你收集整理的java存储过程与sql语句_存储过程与SQL语句怎么选择的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IT运维是什么?
- 下一篇: 没有上下文的java类_java – 这