⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbpages.java

📁 J2EE架构的权限系统
💻 JAVA
字号:
/*
 * 创建日期 2005-8-23
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
package org.infosys.util;

import java.text.DecimalFormat;

import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Session;

import com.infosys.Hibernate.SessionFactory;

/**
 * @author Administrator
 * 计算分页信息
 */
public class DbPages {
	  /**
	   * 计算分页信息
	   * @param pageSize 页长度
	   * @param currentPage 当前页
	   * @param sql sql语句
	   * @param scriptUrl 翻页信息链接地址
	   * @return
	   */
	  public String[] GetPageInfo(int pageSize,String currentPage,String sql,String scriptUrl) {
	  	String totalNum="0";
	  	Session session;
	  	try {
			session = SessionFactory.currentSession();
			totalNum=""+((Integer)session.createQuery(sql).uniqueResult()).intValue();
		} catch (HibernateException e) {
			e.printStackTrace();
		} finally {
			try {
				SessionFactory.closeSession();
			} catch (HibernateException e1) {
				e1.printStackTrace();
			}
		}
		return (new DbPages()).GetPageInfo(totalNum,pageSize,currentPage,scriptUrl);
	  }
	  /**
	   * 计算分页信息
	   * @param totalNum String 记录总数
	   * @param pageSize String 页长度
	   * @param currentPage String 当前页
	   * @param scriptUrl String 翻页信息链接地址
	   * @return String[]
	   * 返回数组:GetPageInfo[0]为记录开始编号,GetPageInfo[1]为记录结束编号,GetPageInfo[2]为翻页信息串
	   */
	  public String[] GetPageInfo(String totalNum,int pageSize,String currentPage,String scriptUrl) {
	    int totalNumInt=0;
	    int currentPageInt=0;
	    int totalPage=0;
	    if(currentPage==null){
	      currentPage="1";
	      currentPageInt=1;
	    }else{
	      currentPageInt=Integer.parseInt(currentPage);
	    }
	    totalNumInt = Integer.parseInt(totalNum);
	    totalPage = ceil(Double.parseDouble(totalNum) / pageSize);
	    if(currentPageInt>totalPage){
	      currentPageInt=totalPage;
	    }
	    if(scriptUrl==null){
	      scriptUrl="?";
	    }
	    int pageParagraph = ceil(Double.parseDouble(""+currentPageInt)/10);
	    int maxpageParagraph = ceil(Double.parseDouble(""+totalPage)/10);
	    StringBuffer pagestr=new StringBuffer();
	    pagestr.append("<script language='JavaScript'>\n");
	    pagestr.append("function pageGo(){\n");
	    pagestr.append("var pageid=window.document.all(\"pagenum\").value;\n");
	    pagestr.append("var checknum=/^\\d+$/g;\n");
	    pagestr.append("if(!checknum.test(pageid)){\n");
	    pagestr.append("alert('输入页码只能为正整数!')\n");
	    pagestr.append("pageid='1';\n");
	    pagestr.append("}else if(pageid<1 || pageid>").append(totalPage).append("){\n");
	    pagestr.append("alert('输入页码超出页码范围!')\n");
	    pagestr.append("}else if(pageid==").append(currentPage).append("){\n");
	    pagestr.append("alert('输入页码就是当前显示页码!')\n");
	    pagestr.append("}else{\n");
	    pagestr.append("window.location=\"").append(scriptUrl).append("page=\"+pageid;\n");
	    pagestr.append("}\n}\n</script>\n");
	    pagestr.append("页次:").append(currentPageInt).append("/").append(totalPage).append("页 ").append(pageSize).append("条/页&nbsp;&nbsp;");
	    pagestr.append("<a href='").append(scriptUrl).append("page=1' title='第一页'><font face=webdings>9</font></a> ");
	    if(pageParagraph>1)
	      pagestr.append("<a href='").append(scriptUrl).append("page=").append(((pageParagraph - 1) * 10)).append("' title='上十页'><font face=webdings>7</font></a> ");
	    pagestr.append("<b>");
	    int startpage=(pageParagraph - 1) * 10 + 1;
	    int endpage=pageParagraph * 10 + 1;
	    for(int i=startpage;i<endpage;i++){
	      if(i==currentPageInt){
	        pagestr.append("<font color=red>").append(i).append("</font> ");
	      }else{
	        if(i<=totalPage){
	          pagestr.append("<a href='").append(scriptUrl).append("page=").append(i).append("'>").append(i).append("</a> ");
	        }
	      }
	    }
	    pagestr.append("</b>");
	    if(pageParagraph<maxpageParagraph)
	      pagestr.append("<a href='").append(scriptUrl).append("page=").append(((pageParagraph * 10) + 1)).append("' title='下十页'><font face=webdings>8</font></a> ");
	    pagestr.append("<a href='").append(scriptUrl).append("page=").append(totalPage).append("' title='末一页'><font face=webdings>:</font></a>");
	    pagestr.append("&nbsp;&nbsp;<input name='pagenum' id='pagenum' type='text' value='").append(currentPage).append("' size='3'>");
	    pagestr.append("<input type='button' name='cmdpage' value='GO' onClick=\"javascript:pageGo();\">");
	    int start = (currentPageInt-1) * pageSize;
	    int endtmp = start + pageSize;
	    if(endtmp>totalNumInt){
	      endtmp=totalNumInt;
	    }
	    int end = endtmp;
	    String retArr[]=new String[3];
	    retArr[0]=""+start;
	    retArr[1]=""+end;
	    retArr[2]=pagestr.toString();
	    return retArr;
	  }

	  /**
	   * 计算分页信息
	   * @param totalNum String 记录总数
	   * @param pageSize String 页长度
	   * @param currentPage String 当前页
	   * @return String[]
	   * 返回数组:GetPageInfo[0]为记录开始编号,GetPageInfo[1]为记录结束编号,GetPageInfo[2]为翻页信息串
	   */
	  public String[] GetPageInfo(String totalNum,int pageSize,String currentPage) {
	    int totalNumInt=0;
	    int currentPageInt=0;
	    int totalPage=0;
	    if(currentPage==null){
	      currentPage="1";
	      currentPageInt=1;
	    }else{
	      currentPageInt=Integer.parseInt(currentPage);
	    }
	    totalNumInt = Integer.parseInt(totalNum);
	    totalPage = ceil(Double.parseDouble(totalNum) / pageSize);
	    if(currentPageInt>totalPage){
	      currentPageInt=totalPage;
	    }
	    String scriptUrl="?";
	    int pageParagraph = ceil(Double.parseDouble(""+currentPageInt)/10);
	    int maxpageParagraph = ceil(Double.parseDouble(""+totalPage)/10);
	    StringBuffer pagestr=new StringBuffer();
	    pagestr.append("<script language='JavaScript'>\n");
	    pagestr.append("function pageGo(){\n");
	    pagestr.append("var pageid=window.document.all(\"pagenum\").value;\n");
	    pagestr.append("var checknum=/^\\d+$/g;\n");
	    pagestr.append("if(!checknum.test(pageid)){\n");
	    pagestr.append("alert('输入页码只能为正整数!')\n");
	    pagestr.append("pageid='1';\n");
	    pagestr.append("}else if(pageid<1 || pageid>").append(totalPage).append("){\n");
	    pagestr.append("alert('输入页码超出页码范围!')\n");
	    pagestr.append("}else if(pageid==").append(currentPage).append("){\n");
	    pagestr.append("alert('输入页码就是当前显示页码!')\n");
	    pagestr.append("}else{\n");
	    pagestr.append("window.location=\"").append(scriptUrl).append("page=\"+pageid;\n");
	    pagestr.append("}\n}\n</script>\n");
	    pagestr.append("页次:").append(currentPageInt).append("/").append(totalPage).append("页 ").append(pageSize).append("条/页&nbsp;&nbsp;");
	    pagestr.append("<a href='").append(scriptUrl).append("page=1' title='第一页'><font face=webdings>9</font></a> ");
	    if(pageParagraph>1)
	      pagestr.append("<a href='").append(scriptUrl).append("page=").append(((pageParagraph - 1) * 10)).append("' title='上十页'><font face=webdings>7</font></a> ");
	    pagestr.append("<b>");
	    int startpage=(pageParagraph - 1) * 10 + 1;
	    int endpage=pageParagraph * 10 + 1;
	    for(int i=startpage;i<endpage;i++){
	      if(i==currentPageInt){
	        pagestr.append("<font color=red>").append(i).append("</font> ");
	      }else{
	        if(i<=totalPage){
	          pagestr.append("<a href='").append(scriptUrl).append("page=").append(i).append("'>").append(i).append("</a> ");
	        }
	      }
	    }
	    pagestr.append("</b>");
	    if(pageParagraph<maxpageParagraph)
	      pagestr.append("<a href='").append(scriptUrl).append("page=").append(((pageParagraph * 10) + 1)).append("' title='下十页'><font face=webdings>8</font></a> ");
	    pagestr.append("<a href='").append(scriptUrl).append("page=").append(totalPage).append("' title='末一页'><font face=webdings>:</font></a>");
	    pagestr.append("&nbsp;&nbsp;<input name='pagenum' id='pagenum' type='text' value='").append(currentPage).append("' size='3'>");
	    pagestr.append("<input type='button' name='cmdpage' value='GO' onClick=\"javascript:pageGo();\">");
	    int start = (currentPageInt-1) * pageSize;
	    int endtmp = start + pageSize;
	    if(endtmp>totalNumInt){
	      endtmp=totalNumInt;
	    }
	    int end = endtmp;
	    String retArr[]=new String[3];
	    retArr[0]=""+start;
	    retArr[1]=""+end;
	    retArr[2]=pagestr.toString();
	    return retArr;
	  }

	  private int ceil(double in){
	    String dbStr=new DecimalFormat("#0").format(in);
	    int newdb=Integer.parseInt(dbStr);
	    if(in>newdb){
	      newdb++;
	    }
	    return newdb;
	  }

	  public static void main(String[] args){
	    String dataArr[]=(new DbPages()).GetPageInfo("239",18,"1","?");
	    for(int i=0;i<dataArr.length;i++){
	      System.out.println(dataArr[i]);
	    }
	  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -