PLSQL實現分頁

 分頁是任何一個網站(bbs,網上商城,blog)都會使用到的技術,因此學習pl/sql編程開發就一定要掌握該技術。如下圖:

1.  編寫無返回值的存儲過程

     首先是掌握最簡單的存儲過程,無返回值的存儲過程。

案例:現有一張表book,表結構如下:

請寫一個過程,可以向book表添加書,要求通過java程序調用該過程。
--in:表示這是一個輸入參數,默認爲in
--out:表示一個輸出參數
存儲過程代碼如下:

 

在java中調用中調用該過程代碼如下:

 

     執行,記錄被加進去了。

2.  有返回值的存儲過程(非列表)
案例:編寫一個過程,可以輸入僱員的編號,返回該僱員的姓名。
案例擴張:編寫一個過程,可以輸入僱員的編號,返回該僱員的姓名、工資和崗位。

存儲過程代碼如下:

 

java調用過程代碼如下:

  
運行,成功得出結果。

案例擴張:編寫一個過程,可以輸入僱員的編號,返回該僱員的姓名、工資和崗位。

java調用過程代碼如下:

     運行,成功找出記錄。
3.  有返回值的存儲過程(列表[結果集])

     案例:編寫一個過程,輸入部門號,返回該部門所有僱員信息。
對該題分析如下: 
     由於oracle存儲過程沒有返回值,它的所有返回值都是通過out參數來替代的,列表同樣也不例外,但由於是集合,所以不能用一般的參數,必須要用pagkage了。所以要分兩部分:
(1). 建立一個包,在該包中,我定義類型test_cursor,是個遊標。代碼如下:

(2). 建立存儲過程,代碼如下:

(3). 在java中調用該過程,代碼如下:

運行,成功得出部門號是10的所有用戶。

4.  編寫分頁過程 
     要求,請大家編寫一個存儲過程,要求可以輸入表名、每頁顯示記錄數、當前頁。返回總記錄數,總頁數,和返回的結果集。
(1). oracle中的分頁實現:

(2). 開發一個包

      建立一個包,在該包中,我定義類型test_cursor,是個遊標。代碼如下:

(3). 使用java測試該分頁過程,代碼如下:

     運行,控制檯輸出:
     rowNum=19
     總頁數:4
     編號:7369 名字:SMITH 工資:2850.0
     編號:7499 名字:ALLEN 工資:2450.0
     編號:7521 名字:WARD 工資:1562.0
     編號:7566 名字:JONES 工資:7200.0
     編號:7654 名字:MARTIN 工資:1500.0

新的需要,要求按照薪水從低到高排序,然後取出6-10。

代碼如下:

      重新執行一次procedure,java不用改變,運行,控制檯輸出:
      rowNum=19
      總頁數:4
      編號:7900 名字:JAMES 工資:950.0
      編號:7876 名字:ADAMS 工資:1100.0
      編號:7521 名字:WARD 工資:1250.0
      編號:7654 名字:MARTIN 工資:1250.0 
      編號:7934 名字:MILLER 工資:1300.0

發佈了86 篇原創文章 · 獲贊 1 · 訪問量 46萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章