程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 談談Java調用SQL Server分頁存儲過程(1)

談談Java調用SQL Server分頁存儲過程(1)

編輯:關於JAVA

本文主要談談Java調用SQL Server分頁存儲的過程,其返回是多個結果集,只要呈現形式是代碼,文字不多,簡單易懂。

SQL存儲過程:

  1. USE [Db_8za8za_2]
  2. GO
  3. SET ANSI_NULLS ON
  4. GO
  5. SET QUOTED_IDENTIFIER ON
  6. GO
  7. -- =============================================
  8. -- Description: <Description,,通用分頁存儲過程>
  9. -- =============================================
  10. ALTER PROCEDURE [dbo].[paging ]
  11. -- Add the parameters for the stored procedure here
  12. --傳入參數
  13. @SqlStr nvarchar(4000), --查詢字符串
  14. @CurrentPage int, --第N頁(當前頁數)
  15. @PageSize int --每頁行數
  16. AS
  17. BEGIN
  18. -- SET NOCOUNT ON added to prevent extra result sets from
  19. -- interfering with SELECT statements.
  20. SET NOCOUNT ON;
  21. --定義變量
  22. DECLARE @CursorId int --CursorId是游標的id
  23. DECLARE @Rowcount int --總記錄(行)數
  24. DECLARE @pageCount int --總頁數
  25. -- Insert statements for procedure here
  26. EXEC sp_cursoropen @CursorId output,@SqlStr,
  27. @Scrollopt=1,@Ccopt=1,@Rowcount=@Rowcount OUTPUT
  28. SET @pageCount=CEILING(1.0*@Rowcount/@PageSize)--設置總頁數
  29. SELECT @pageCount
  30. AS 總頁數,@Rowcount AS 總行數,@CurrentPage AS 當前頁 --提示頁數
  31. IF(@CurrentPage>@pageCount)--如果傳入的當前頁碼大入總頁碼數則把當前頁數設為最後一頁
  32. BEGIN
  33. SET @CurrentPage = @pageCount--設置當前頁碼數
  34. END
  35. IF(@CurrentPage<=0)--如果傳入的當前頁碼大入總頁碼數則把當前頁數設為第一頁
  36. BEGIN
  37. SET @CurrentPage = 1--設置當前頁碼數
  38. END
  39. SET @CurrentPage=(@CurrentPage-1)*@PageSize+1 --設置當前頁碼數
  40. EXEC sp_cursorfetch @CursorId,16,@CurrentPage,@PageSize
  41. EXEC sp_cursorclose @CursorId --關閉游標
  42. SET NOCOUNT OFF
  43. END
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved