非常简洁可读性非常强的分页JavaBean

Page.java

package com.china3cts;
import java.sql.*;
import java.io.*;
import java.lang.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.china3cts.dbop;
public class Page extends HttpServlet
{
 private int Pno;
 private int Page;
 private int Total;
 private int Pages;
 private String GSQL;
 private String MSQL;
 private dbop conn;
 public void setGSQL(String inGSQL)
 {
  this.GSQL=inGSQL;
 }
 public void setMSQL(String inMSQL)
 {
  this.MSQL=inMSQL;
 }

 public int getTotal()
 {
  return this.Total;
 }
 public int getPage()
 {
  return this.Page;
 }
 public int getPages()
 {
  return this.Pages;
 }
 public void setPno(int inPno)
 {
  this.Pno=inPno;
 }
 public int getPno()
 {
  return this.Pno;
 }
 public ResultSet PageMe(HttpServletRequest request,HttpServletResponse response)
  throws IOException, ServletException
 {
  PrintWriter out = response.getWriter();
  //获取当前页
  String strPage=request.getParameter("page");
  if (strPage==null)
  {
   Page=1;
  }
  else
  {
   Page=Integer.parseInt(strPage);
  }
  //获取总记录数
  dbop conn=new dbop();
  ResultSet rs=null;
  try
  {
   rs=conn.execute(MSQL);
   if(rs.next())
   {
    Total=rs.getInt(1);
   }
   else
   {
    Total=0;
   }
   rs.close();
  }
  catch (SQLException e)
  {
   out.println(e.toString());
  }
  
  //获取总页数
  if (Pno==0)
  {
   Pno=20;
  }
  Pages=(Total+Pno-1)/Pno;
  //获取已分好页的记录.
  if (Total>0)
  {
   try
   {
    Prs=conn.execute(GSQL);
   }
   catch (Exception e)
   {
    out.println(e.toString());
   }
  }
  else
  {
   return null;
  }
 return rs;
 }

 

测试调用JSP.test.jsp

<%@ page contentType="text/html;charset=GBK"%>
<%@ page language="java" import="java.sql.*" %>
<jsp:useBean id="pm" scope="page" class="com.china3cts.Page" />
<%
String MSQL="Select count(id) from table";
String GSQL="Select * from table  order by id Asc";
pm.setPno(10);
pm.setGSQL(GSQL);
pm.setMSQL(MSQL);
ResultSet rs=pm.PageMe(request,response);
int Total=pm.getTotal();
int Pages=pm.getPages();
int Page=pm.getPage();
int Pno=pm.getPno();
out.print("<br>Total:");
out.print(Total);
out.print("<br>Page:");
out.print(Page);
out.print("<br>Pages:");
out.print(Pages);
out.print("<br>Pno:");
out.print(Pno);

%>

解释与说明:

1为什么说是简洁呢?

这个只是把一些内在的东西封闭了.比如.参数page

2为什么可读呢?省去了一堆判断的东西.比如.页数据啊什么的.

看到if else就烦人.对吧.

实际运用的时候也就五行搞定了.

String MSQL="Select count(id) from table";
String GSQL="Select * from table  order by id Asc";
pm.setPno(10);
pm.setGSQL(GSQL);
pm.setMSQL(MSQL);
ResultSet rs=pm.PageMe(request,response);

3,这个豆豆只是把记录作一下分页的属性提取.

并没有真正意义上去分页.谈不上什么高效与否.

但是你得到了RS,就随便你怎么分了.想怎么分就怎么分.

用vector或者其他的都随你便了.

简单的就如这个可以了.

      i  =  (intPage-1)  *  intPageSize;     
      for(j=0;j<i;j++)  RS.next();
      //out.print(sql);
      i=0;
      while(i<intPageSize  &&  RS.next())

{

// 数据显示....

i++;

}

 

5:dbop 类我博客上的其他文章里可以找到.叫连接池那篇文章.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

3cts

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值