日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

在Spring框架中使用SQL存储过程

發布時間:2025/3/15 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Spring框架中使用SQL存储过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Spring框架也支持對SQL存儲過程的調用,SQL存儲過程是一組預先定義好的SQL語句,并存儲到數據庫管理系統中,外部程序可以直接調用執行。本課主要討論在Spring框架中應用程序如何調用MySQL存儲過程。通過本課的學習,可以達到如下目標。

● 認識和理解SQL存儲過程

● 在Spring框架中調用SQL存儲過程

1、 認識SQL存儲過程

類似于編程語言中的函數,SQL存儲過程是SQL語言中的函數。開發者可以把查詢、更新、插入等SQL語句按照一的規范寫成存儲過程,存儲到數據庫管理系統中,外部應用程序可以直接調用。

使用SQL存儲過程,可以提高SQL語句的執行效率。一是SQL語句都是編譯后再執行,而SQL存儲過程已經預先在數據庫管理系統編譯通過,省略了編譯環節;二是存儲過程執行后,數據庫管理系統會對存儲過程進行緩存,下次執行該存儲過程時,會直接從緩存中調用,執行速度要高于普通的SQL語句。

使用SQL存儲過程,提高了SQL代碼的可維護性。一般來說,普通SQL代碼會分布在系統中各個模塊,當需要修改SQL代碼時,就需要到各個模塊中修改,代碼維護工作量大。如果把相同的SQL代碼寫成一個存儲過程,由各個模塊統一調用,當需要修改SQL代碼時,只需要修改存儲過程就可以了。

使用SQL存儲過程,也提高了數據庫的安全性,可以有效防止SQL注入對數據庫的攻擊。

下面以課程案例mooc數據庫為例,說明SQL存儲過程的創建和使用方法。在mooc數據庫中創建一個名為get_coursename_number的存儲過程,該存儲過程使用course表的number字段,查詢相對應的課程,并返回課程名稱。進入MySQL命令行窗口,輸入下面的命令,創建get_coursename_number存儲過程。

?

存儲過程創建成功后,在MySQL命令行窗口,可以執行存儲過程。在MySQL命令行窗口,輸入下面的命令。

call為調用存儲過程的命令,call后面為存儲過程名稱。括號內為存儲過程要傳入和輸出的參數。輸出的參數@name可以通過select命令查看。如下圖所示。

?

2、在Spring框架中調用SQL存儲過程

Spring框架提供了JDBC封裝類SimpleJdbcCall,SimpleJdbcCall主要用于調用SQL存儲過程或存儲函數,該類簡化了Java調用存儲過程的復雜機制,利用SqlParameterSource類管理存儲過程傳入的參數,利用Map數據類型接收存儲過程返回的參數。使用SimpleJdbcCall調用存儲過程的代碼如下。

getCoureName方法執行已定義的get_coursename_number存儲過程,并返回課程名稱。get_coursename_number存儲過程要求傳入課程編號,并根據課程編號查詢課程,返回課程名稱字段,具體執行的SQL語句已在get_coursename_number存儲過程中定義。SqlParameterSource管理存儲過程傳入的參數,使用其addValue方法將參數添加到SqlParameterSource,并作為SimpleJdbcCall類execute方法的傳入參數,execute方法負責執行存儲過程,并以Map方式返回存儲過程的執行結果。

下面給出具體執行存儲過程的案例程序。案例程序的數據源采用mooc數據庫,mooc數據庫的結構以及本案例中沒有列出的代碼詳見《Spring使用JDBC訪問MySQL數據庫》一文。

(1)創建數據訪問對象(DAO)

在《Spring使用JDBC訪問MySQL數據庫》一文中,已經創建了基于JdbcTemplate的數據訪問DAO類。本文創建基于SimpleJdbcCall過程調用的數據訪問DAO類。

?

(2)創建Spring配置文件

創建procedure.xml配置文件,配置文件定義了數據源和DAO類。

?

(3)編寫測試程序

測試程序首先讀取procedure.xml配置文件,初始化配置文件中定義的DAO類和數據源,并返回上下文環境context。然后,調用context的getBean方法獲取DAO類的實例,獲得DAO實例后,再調用DAO實例的listCourse()方法查詢所有記錄,最后迭代listCourse()返回的結果集,在迭代過程中,調用DAO實例的getCoureName方法執行已定義的存儲過程,獲取課程名稱。

?

課程小結

(1)SQL存儲過程是將一些頻繁調用的SQL語句按照一定規則編寫,并存儲到服務器端的數據庫管理系統中,外部應用程序可以直接調用存儲過程并接收存儲過程返回的結果集。

(2)Spring框架提供了JDBC封裝類SimpleJdbcCall,用于開發者便捷調用SQL存儲過程或存儲函數,SimpleJdbcCall類execute方法負責調用存儲過程,該方法需要傳入SqlParameterSource類型的參數。SqlParameterSource管理存儲過程傳入的參數,使用其addValue方法將參數添加到SqlParameterSource,execute方法以Map方式返回存儲過程的執行結果。

總結

以上是生活随笔為你收集整理的在Spring框架中使用SQL存储过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。