一个通用的JSP分页程序

js|程序|分页

//本程序使用了一个类反射的类,可以自动将查询出来的值填充到值对象里。
//这个类可以参见ibm的文章:使用类反射机制简化struts的开发.

package com.lyjWeb.wyhn.common;

import java.sql.*;
import com.lyjWeb.common.*;
import java.util.*;

public class Fenye {

private Connection con=null;
private String sql="";
private String page="1";// 当前页
private int i_page=1;//当前页
private int i_page_count=10;//每页显示条数
private String nextpage,prepage,sumpage,sumcount;

private String sql_select,sql_from,sql_where,sql_order;
private String sql_pre="";
private String sql_count=""; //count(*)语句
private ResultSet rst=null;
private PreparedStatement stm=null;

private Collection result_c=null;

private String s_null="无";

///////////////////////////输入值///////////////////////////////
public void setConnection(Connection con)
{
this.con=con;
}

public void setSql(String sql_select,String sql_from,String sql_where,String sql_order)
{
//this.sql=sql;
this.sql_select=sql_select;
this.sql_from=sql_from;
this.sql_where=sql_where;
this.sql_order=sql_order;
this.sql_count="select count(*) " + sql_from + " " + sql_where;
this.sql=sql_select + " " + sql_from + " " + sql_where + " " + sql_order;
}

public void setStm(PreparedStatement stm)
{
this.stm=stm;
}

public void setPage(String p)
{
if(p==null)
{
this.page="1";
this.i_page=1;
}
else
{
p=p.trim();
if(p.equals("")) p="1";
this.page=p;
this.i_page=Integer.parseInt(this.page);
}

}

public void setPageCount(int pcount)
{
this.i_page_count=pcount;
}

public void setSqlPre(String sqlpre)
{
this.sql_pre=sqlpre;
}

public void setS_null(String s_null)
{
this.s_null=s_null;
}
//////////////////////////////////////返回值///////////////////////////////////////////
public ResultSet getRst()
{
return rst;
}

public String getPage()
{
return page;
}

public String getNextPage()
{
return nextpage;
}

public String getPrePage()
{
return prepage;
}

public String getSumPage()
{
return sumpage;
}

public String getCount()
{
return sumcount;
}

public Collection getCollection()
{
return result_c;
}

////////////////////////////////////////操 作///////////////////////////////////////////////
private String b_string,f_string;
private String comsql;

private void CountPage() throws Exception
{
//try{
PreparedStatement stm1=con.prepareStatement(sql_count);
ResultSet rst_count=stm1.executeQuery();
rst_count.next();
int i_sum=rst_count.getInt(1);

rst_count.close();
rst_count=null;
stm1.close();
stm1=null;

this.sumcount=String.valueOf(i_sum);

int page_all=0;
if (i_sum % i_page_count==0)
{
page_all=i_sum / i_page_count;
}
else{
page_all=i_sum / i_page_count+1;
}

sumpage=String.valueOf(page_all);

if(i_page>page_all)
{
i_page=page_all;
page=String.valueOf(i_page);
}else if(i_page<1)
{
i_page=1;
page=String.valueOf(i_page);
}

if(i_page==page_all)
nextpage=String.valueOf(i_page) ;
else
nextpage=String.valueOf(i_page+1) ;

if(i_page==1)
prepage="1";
else
prepage=String.valueOf(i_page-1);

int f_number=i_page * i_page_count;
int b_number=f_number-i_page_count+1;
b_string=String.valueOf(b_number);
f_string=String.valueOf(f_number);

//}catch(Exception e)
//{
// System.out.println("Error in fenye:" + e.toString());
//}
}

private void ComSql()
{

comsql= " from (select rownum row_id ,ttttt2.* from( " + sql + " ) ttttt2 ) where row_id between " + b_string + " and " + f_string;

if(sql_pre.equals(""))
comsql=sql_select + comsql;
else
comsql=sql_pre+comsql;
//return comsql;
}
private void SearchData() throws Exception
{
String s=comsql;
stm=con.prepareStatement(s);
rst=stm.executeQuery();
}

public int DoFenye()
{
try{
this.CountPage();
this.ComSql();
this.SearchData();
return 1;
}catch(Exception e)
{
System.out.println("Error in fenye:" + e.toString());
return 0;
}
}

public int DoFenyeCollection(String thedao)
{
try{
System.out.println(sql_count);
this.CountPage();

this.ComSql();
System.out.println(comsql);
result_c=Tool.Select(comsql,thedao,con,s_null);
return 1;
}catch(Exception e)
{
System.out.println("Error in fenye:" + e.toString());
return 0;
}
}
}

时间: 2024-08-28 07:46:06

一个通用的JSP分页程序的相关文章

一个通用的JSP分页类,具有显示多组页码功能

最近几天学习jsp觉得很好,写了个分页类,给大家分享一下,同时也请高手指点. 第一部分:db.MysqlConn 数据库链接类 /********************************************************** 路径:zon.db.MysqlConn 文件:MysqlConn.java 用途:数据库连接 package db; import java.sql.*; import javax.xml.parsers.*; import org.w3c.dom.*

写一个通用的代码生成器

       代码生成器对于JAVA码农来说并不陌生.在一些业务性比较强,但编码比较规范的项目中,往往会有大量的重复或者类似的代码要写.比如对表的增删改查,比如生成用于远程调用的客户端方法存根等等.面对这种情况,程序员通常的做法就是拿一个现成模块的代码copy过来再改改.于是,为了避免这种低效而容易出错的编码方式,诞生了各种各样的能跟据当前项目特证自动生成代码的代码生成器程序.这种程序的本质上就是将大量重复的复制修改工作用程序自动来做,以便自动产生适合自己项目的代码.        然而,这种代

如何成为一个成功的Jsp程序员

js|程序|程序员 如何成为一个成功的Jsp程序员?一个普通的错误是把JSP当作简化的Java.它不是,(事实上, JSP是简化的 servlets.)程序员通常试着没有学习要求的支持技巧而直接学习JSP.JSP 是一个衔接技术,并且成功地连接你需要理解的另外的技术.如果你已经知道Java,HTML和Javascript,这意味着JSP将确实是简单的. 需要成为一个成功的 JSP 程序员可以参考这个时间表.请注意下列: *忽略你已经熟悉的步骤. *训练的时间只是代表学习好足够的基础时间,这样才能

如何成为一个成功的Jsp程序员?

js|程序|程序员 一个普通的错误是把JSP当作简化的 Java.它不是,(事实上, JSP 是简化的 servlets .)程序员通常试着没有学习要求的支持技巧而 直接学习 JSP .JSP 是一个衔接技术,并且成功地连接你需要理解的另外的技术.如果你已经知道 Java,HTML 和 Javascript,这意味着 JSP 将确实是简单的. 需要成为一个成功的 JSP 程序员可以参考这个时间表.请注意下列: *忽略你已经熟悉的步骤. *训练的时间只是代表学习好足够的基础时间,这样才能转移到下一

如何成为一个优秀的jsp程序员

js|程序|程序员 在网上看到很多问题是关于如何学习jsp的,正好网上看到一篇关于学习jsp的文章,就摘了一部分翻译过来,希望能对大家学习jsp有点指导. 一个普通的错误是把JSP当作简化的 Java.它不是,(事实上, JSP 是简化的 servlets .)程序员通常试着没有学习要求的支持技巧而直接学习 JSP .JSP 是一个衔接技术,并且成功地连接你需要理解的另外的技术.如果你已经知道 Java , HTML 和 Javascript,这意味着JSP 将确实是简单的. 需要成为一个成功的

打造一个通用ASP.NET数据分页控件

asp.net|分页|控件|数据 对于几乎所有的数据表现Web应用来说,组织好数据的显示方式.避免给用户带来混乱的感觉就是最主要的目标之一.每个页面显示20条记录当然是可以接受的,但每页显示10000条记录就很容易给用户带来不便了.将数据分成多个页面显示,即对数据进行分页,是解决此类问题的最常见的办法. 一.慨述 ASP.NET本身只提供了一个支持数据分页的控件,即DataGrid分页控件,不过它比较适合Intranet环境使用,对于Internet环境来说,DataGrid分页控件提供的功能似

(翻译)如何成为一个优秀的jsp程序员

js|程序|程序员 (翻译)如何成为一个优秀的jsp程序员 作者:Casey Kochmer翻译:刘玉锋 http://www.21jsp.com 在网上看到很多问题是关于如何学习jsp的,正好网上看到一篇关于学习jsp的文章,就摘了一部分翻译过来,希望能对大家学习jsp有点指 导. 一个普通的错误是把JSP当作简化的 Java.它不是,(事实上, JSP 是简化的 servlets .)程序员通常试着没有学习要求的支持技巧而 直接学习 JSP .JSP 是一个衔接技术,并且成功地连接你需要理解

如何成为一个优秀的jsp程序员(转载)

js|程序|程序员 这是从网上看到的文章,觉得不错,和大家分享. 作者:不详 在网上看到很多问题是关于如何学习jsp的,正好网上看到一篇关于学习jsp的文章,就摘了一部分翻译过来,希望能对大家学习jsp有点指导. 一个普通的错误是把JSP当作简化的 Java.它不是,(事实上, JSP 是简化的 servlets .)程序员通常试着没有学习要求的支持技巧而 直接学习 JSP .JSP 是一个衔接技术,并且成功地连接你需要理解的另外的技术.如果你已经知道 Java , HTML 和 Javascr

设计并实现用于ASP.NET一个通用的数据存取层应用程序

asp.net|程序|设计|数据 Designing and implementing a versatile data access tier for an ASP.NET applicationBy Paul Abarham In this article, we will drill down deeper in to the design of a n-tier architecture and our focus will be on the data access tier (DAT