1 存储过程

ALTER PROCEDURE [dbo].[getStatForXXGKWeb]
@startDate varchar(50),
@endDate varchar(50),
@type varchar(2),
@page int, -- 必写的
@pageRows int,-- 必写的
@allrows int output-- 必写的
AS
declare @beginrow int-- 必写的
declare @endrow int-- 必写的
declare @maxpage int-- 必写的
create table #tmp_count (
sumnum int -- 必写的
)
declare @sql varchar(2000) -- 必写的
declare @sqlcount varchar(2000) -- 必写的
begin --必写的 写在  begin……end 中
set @sqlcount = 'insert into #tmp_count(sumnum) select count(1) from #tmp' exec(@sqlcount) select @allrows=sumnum from #tmp_count
if(@allrows=0)
set @maxpage=1
else
set @maxpage = (@allrows-1)/@pageRows+1
if @page > @maxpage
set @page=@maxpage
set @beginrow = (@page-1)*@pageRows+1
set @endrow = @page*@pageRows
if (@endrow > @allrows)
set @endrow = @allrows
end

2 java代码

ResultPage rs  = publicInfoService.getWebXxgkStat(startDateTj,    
// publicInfoService.getWebXxgkStat 这个要根据情况改
endDateTj, typeId,getPage(),BaseParameter.getPageRowsMiddle());
// typeId,getPage(),BaseParameter.getPageRowsMiddle()
// 这2个参数必写,如果没有那么要加上去,这样的话接口,实现类,存储过程的都要跟着加参数, 下面的也是必写的
if (rs != null) {
webxxgkListTj = rs.getResultList(); // webxxgkListTj 这个对象名也要根据情况改

setMaxPage(rs.getMaxPage());
setAllRows(rs.getAllRows());
setThisPageRows(rs.getPageRows());
public ResultPage getWebXxgkStat(String startDate,String endDate,String type,int page,int pageRows) throws Exception;

// 接口这里 ResultPage 必须要返回这个类型
//       实现类一般都是这样的,照着改 
      class WebXxgkStatList implements RowCallbackHandler{
private List result = new ArrayList();
public void processRow(ResultSet rs) throws SQLException{
Hashtable tmp = new Hashtable();
tmp.put("orgId", rs.getObject(1));
tmp.put("orgname", rs.getObject(2));
tmp.put("orglayer", rs.getObject(3));
tmp.put("totalSum", rs.getInt(4));
tmp.put("ysqSum", rs.getInt(5));
tmp.put("yeartotalSum", rs.getInt(6));
tmp.put("bfb", rs.getObject(8));
tmp.put("sumT", rs.getInt(9));
result.add(tmp);
} private List getResult(){
return result;
}
}
  // 特别是下面的这些代码,要写,参数名startDate,endDate,type 这3个要看情况换
WebXxgkStatList list = new WebXxgkStatList(); // 必写
Integer allrows = 0; // 必写
Object[] outobjs = new Object[]{allrows}; // 必写
execProcPage("getStatForXXGKWeb(?,?,?,?,?,?)", // 必写
new Object[] {startDate,endDate,type, page, pageRows},outobjs, list);// 必写
return new ResultPage(list.getResult(), (Integer)outobjs[0], page, pageRows);// 必写
}

3 jsp

<td colspan="4">
<%@ include file="../../include/pagination_czx.inc"%>
</td>

到目前为止,写了上面所有的代码之后,只能是说 <%@ include file="../../include/pagination_czx.inc"%> 引用的这个inc里面的代码只实现了部分

也就是说,jsp页面只是出现了:

出现了 可以点击 的按钮,但是看上面的87 88 这么说明并没有分页成功。。。

day02-第三天

  而然我加了这些代码之后,就可以实现了一页显示前18条数据

set @sql='insert into #tmp1
select top ' + CAST((@endrow-@beginrow+1) as varchar(4)) + ' * from (
select top '+ CAST(@endrow as varchar(8)) + ' * from
(
select top '+ CAST(@endrow as varchar(8)) + ' * from #tmp ) as tmpp
) as tmpp1' exec(@sql) if(@sum=0)
update #tmp set bfb = 0.00
else
update #tmp set bfb = totalSum/@sum*100 update #tmp set sumT = @sum select * from #tmp1 order by orglayer,px desc --select * from PT_ORGAN where orglayer in (2,3,4) END --exec getStatForXXGKWeb '2011-01-01','2013-02-02',''

虽然解决了显示前18条数据,但是还是有个BUG,就是翻页之后还是第一页的数据,数据并没有变,我猜想有可能是我取的是前18条数据,

然后18条数据之后的数据都丢失了。

所以我准备把这段代码改一改试试看:

以下是 2015/10/09日更新

存储过程原来可以直接update 临时表 不用搞成 字符串存到局部变量里再通过exec()执行

这里的分页我是改成了这个样子,我在#tmp临时表里添加了一个自增字段,然后我上面的存储过程就是根据自增字段进行的分页,同时#tmp1里也添加了一个一样的字段,不过不是自增的,因为要把tmp里面的数据插入到tmp1里去。tmp1就是用来装数据的,比如让页面是第二页的时候,这句存储过程只读取#tmp21-40行的数据,也就是只把#tmp的21-40行数据装入#tmp1,然后页面把tmp1里的数据显示出来。

这单子脱了3个月多终于完成了~

zf-关于分页必写的代码的更多相关文章

  1. 分页 工具类 前后台代码 Java JavaScript (ajax) 实现 讲解

    [博客园cnblogs笔者m-yb原创, 转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708]http ...

  2. 使用 TypeScript & mocha & chai 写测试代码实战(17 个视频)

    使用 TypeScript & mocha & chai 写测试代码实战(17 个视频) 使用 TypeScript & mocha & chai 写测试代码实战 #1 ...

  3. 分享5种风格的 jQuery 分页效果【附代码】

    jPaginate 是一款非常精致的分页插件,提供了五种不同风格的分页效果,支持鼠标悬停翻页,快速分页功能.这款插件还提供了丰富的配置选项,你可以根据需要进行设置. 效果演示      源码下载 各个 ...

  4. .net学习之Session、Cookie、手写Ajax代码以及请求流程

    1.IIS 7 以上版本集成了两种模式,一种是经典模式,一种是集成模式(直接将asp.net框架集成到IIS中) 2.浏览器和服务器端通过什么技术来实现的?Socket(套接字),通信的语法是HTTP ...

  5. jQuery之父:每天都写点代码

    去年秋天,我的“兼职编程项目”遇到了一些问题:要不是从 Khan Academy 的项目里挪出时间来的话,我根本没办法将不理想的进度弥补上. 这些项目遇到了一些严重的问题.之前的工作我主要是在周末,有 ...

  6. Wix#可以直接写C#代码来生成Wix的MSI安装文

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:Wix#可以直接写C#代码来生成Wix的MSI安装文.

  7. 关于 OnCloseQuery: 顺序、不能关机等(所有的windows的广播消息都是逐窗口传递的)——如果一个窗体的OnCloseQuery事件中如果写了代码那么WM_QUERYENDSESSION消息就传不过去了msg.result会返回0,关机事件也就停止了

    系统关闭窗体的事件顺序为: OnCloseQuery ----> OnClose ----> OnDestroy 下面的代码说明问题: unit Unit3; interface uses ...

  8. Lombok : 让你写 Java代码像C#一样爽

    前言 我曾经是一名 .Net 开发,如今的我是一名 Java 开发者.在我享受着 Java 成熟的生态时,我常常怀念 c# 简洁的语法:自动属性.类型推断.自动初始化器 .... 鱼,我所欲也,熊掌亦 ...

  9. 不写一行代码,利用常用工具和软件批量下载URL资源

    有时候会遇到这种情况:想从某个网站下载一批东西,目标URL是比较规整的,而且结构都一样(仅某些字段不同).但又懒得开IDE专门写个脚本去弄,今天就和大家分享一下,如何利用手边常用的软件和工具,不用写一 ...

随机推荐

  1. Android中调用系统的相机和图库获取图片

    //--------我的主布局文件------很简单---------------------------------<LinearLayout xmlns:android="http ...

  2. HDU3371--Connect the Cities(最小生成树)

    Problem Description In 2100, since the sea level rise, most of the cities disappear. Though some sur ...

  3. ajax基本使用

    ajax在用于异步交互以来,一直被广泛使用,其使用语法格式基本如下: 基本格式为$.ajxa({ type:"",数据传送方式POST,GET url:"",处 ...

  4. HDU 5795 A Simple Nim

    打表找SG函数规律. #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> ...

  5. hdu_2899_Strange fuction(三分查找)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2899 题意:让你解方程 题解:对于只有一个凸或者没有凸的图像,可以直接上三分解决. #include& ...

  6. const放在函数前和函数后

    class c { public: returnType functionName (parameter list) const; //这个函数不会修改类成员 const returnType fun ...

  7. mvc Controller类介绍

    1.Controller类 i.Controller必须为公开类: ii.必须以Controller结尾: iii.继承Controller基类或实现IController接口的类: iv.类中必须包 ...

  8. asp.net 基础

    前台HTML,javascript,后台C# 代码能不在后台写,就不在后台写 WebSite和WebApplication的区别 1)当改变后台代码时,WebApplication需重启浏览器或者重新 ...

  9. QML插件扩展2(基于C++的插件扩展)

    上一节介绍了纯QML的插件扩展方式,这种扩展方式基本满足大部分的扩展需求,下面开始介绍比较小众的基于C++的扩展 (一)更新插件工程 1.更新MyPlugin工程下的qmldir文件,加入plugin ...

  10. log4j之mybatis配置

    简单记录一下,配置,因为项目要转向maven架构,所以jar有maven管理,配置完成之后发现原先的sql语句都出不来了,于是搜了一下 mybatis+log4j所需要的依赖如下(我列出我用的版本): ...