2025-05-23

一. 要分頁我們必須要有數據庫,所以我們先準備下數據庫,其數據庫腳步如下:



–以下是創建數據庫和數據庫表以及向數據庫插入數據   use master 
Go 
if exists(select * from sysdatabases where name=pagination) 
drop database pagination 
Go 
create database pagination 
Go 
use pagination 
Go 
create table userInfo ( 
    [userID] int identity(1,1) primary key not null, 
    [userName] nvarchar(50) not null, 
    [userPassword] nvarchar(50) not null, 

Go 
insert userInfo  values(xuyesheng,8888) 
insert userInfo  values(jiaojiao,8888) 
insert userInfo  values(administrator,888) 
insert userInfo  values(xuyesheng1,123) 
insert userInfo  values(xuyesheng2,123) 
insert userInfo  values(xuyesheng3,123) 
insert userInfo  values(xuyesheng4,123) 
insert userInfo  values(xuyesheng5,123) 
insert userInfo  values(xuyesheng6,123) 
Go 
select * from userInfo
二: 通用分頁的存儲過程,如下:


    —————創建存儲過程————– 
    Go 
    set ANSI_NULLS ON 
    set QUOTED_IDENTIFIER ON 
    go 
    ———————————— 
    — 
    –用途:用於需要分頁顯示的數據 
    –時間:2009年08月22日 
    –描述:通用的存儲過程分頁程序 
    — 
    ————————————- 
    create PROCEDURE [dbo].[GetData] 
    @tblName varchar(255), — 表名 
    @fldName varchar(255), — 字段名 
    @OrderfldName varchar(255), — 排序字段名 
    @PageSize int = 10, — 頁尺寸 
    @PageIndex int = 1, — 頁碼 
    @IsCount bit = 0, — 返回記錄總數, 非 0 值則返回 
    @OrderType bit = 0, — 設置排序類型, 非 0 值則降序 
    @strWhere varchar(1000) = — 查詢條件 (註意: 不要加 where) 
    AS 
    declare @strSQL varchar(6000) — 主語句 
    declare @strTmp varchar(500) — 臨時變量 
    declare @strOrder varchar(400) — 排序類型 
    if @OrderType != 0 
    begin 
      set @strTmp = <(select min 
      set @strOrder = order by [ + @OrderfldName +] desc 
    end 
    else 
    begin 
      set @strTmp = >(select max 
      set @strOrder = order by [ + @OrderfldName +] asc 
    end 
      set @strSQL = select top + str(@PageSize) + + @fldName + from [ 
      + @tblName + ] where [ + @OrderfldName + ] + @strTmp + ([ 
      + @OrderfldName + ]) from (select top + str((@PageIndex-1)*@PageSize) + [ 
      + @OrderfldName + ] from [ + @tblName + ] + @strOrder + ) as tblTmp) 
      + @strOrder 
      if @strWhere !=  
      set @strSQL = select top + str(@PageSize) + + @fldName + from [ 
      + @tblName + ] where [ + @OrderfldName + ] + @strTmp + ([ 
      + @OrderfldName + ]) from (select top + str((@PageIndex-1)*@PageSize) + [ 
      + @OrderfldName + ] from [ + @tblName + ] where + @strWhere +  
      + @strOrder + ) as tblTmp) and + @strWhere + + @strOrder 
      if @PageIndex = 1 
      begin 
       set @strTmp =  
       if @strWhere !=  
          set @strTmp = where + @strWhere 
          set @strSQL = select top + str(@PageSize) + + @fldName + from [ 
          + @tblName + ] + @strTmp + + @strOrder 
      end 
      if @IsCount != 0 
      begin 
           if @strWhere !=  
            set @strSQL = select count( + @OrderfldName + ) as Total from [ + @tblName + ]+ where + @strWhere   
            else 
            set @strSQL = select count( + @OrderfldName + ) as Total from [ + @tblName + ]     
      end 
    exec (@strSQL) 
    –測試下 
    Go 
    —-參數說明exec [GetData] 表明,查找的列名* 表示查找所有信息,主鍵,頁大小,第幾頁,非 
    –表示返回記錄數,[排序類型,非則降序排列],條件 
    –得到分頁的數據 
    exec [GetData] userInfo,*,userID,5,1,0,0,null 
    –得到總共的條數 
    exec [GetData] userInfo,*,userID,5,1,1,0,null 
    –根據條件查詢 
    exec [GetData] userInfo,*,userID,5,1,0,0, userID like %2%


存儲過程我們有瞭我們隻要給一下幾個參數就OK瞭


@tblName varchar  — 表名
@fldName varchar  — 字段名
@OrderfldName     — 排序字段名
@PageSize int     — 頁尺寸
@PageIndex int    — 頁碼
@IsCount bit      — 返回記錄總數, 非 0 值則返回
@OrderType bit    — 設置排序類型, 非 0 值則降序
@strWhere varchar — 查詢條件 (註意: 不要加 where)



三 通用包


到這裡我們先不用急,先將一下三個Java類(Pagination.java Call.java AutoSetData.java)封裝一下,然後打成JAR包,以後我們直接導入JAR包即可


Pagination.java


存儲過程我們有瞭我們隻要給一下幾個參數就OK瞭


@tblName varchar  — 表名
@fldName varchar  — 字段名
@OrderfldName     — 排序字段名
@PageSize int     — 頁尺寸
@PageIndex int    — 頁碼
@IsCount bit      — 返回記錄總數, 非 0 值則返回
@OrderType bit    — 設置排序類型, 非 0 值則降序
@strWhere varchar — 查詢條件 (註意: 不要加 where)


到這裡我們先不用急,先將一下三個Java類(Pagination.java Call.java AutoSetData.java)封裝一下,然後打成JAR包,以後我們直接導入JAR包即可


Pagination.java



import java.util.List;  
public class Pagination {  
    // 總共的數據量  
    private int totle;  
    // 每頁顯示多少條&

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *