非常简洁可读性非常强的分页JavaBean
2006-07-07 01:24
316 查看
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 类我博客上的其他文章里可以找到.叫连接池那篇文章.
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 类我博客上的其他文章里可以找到.叫连接池那篇文章.
相关文章推荐
- jsp servlet javaBean实现oracle数据库分页显示
- 小记-----原生sql分页的javabean
- jsp+servlet+javabean实现数据分页方法完整实例
- JSP+Javabean+JSTL实现了记录分页显示
- 连接mysql的javabean实例+简单分页
- Tomcat数据库连接池 + JavaBean + 分页技术 + JDBC3.0 + 大型数据库
- javaBean+servlet+jsp实现分页效果
- 连接mysql的javabean实例+简单分页
- Servlet+JavaBean+JSP真假分页技术详解
- 浅谈java分页三个类 PageBean ResponseUtil StringUtil
- [JSP&JDBC]连接数据库DAO增删查改+JavaBean+分页显示实例
- 最近看到知乎上某回复,关于java bean是个什么东西,非常言简意赅
- java分页三个类 PageBean ResponseUtil StringUtil
- JSP+Servlet+JavaBean实现分页
- jsp+servlet+javabean (MVC)分页
- jsp+java bean+mysql数据库进行分页显示
- jsp+Javabean+servlet实现分页查询
- jsp+servlet+javaBean的后台分页
- jquery java struts2 分页插件 非常好看 可自定义修改样式