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

📄 pagelist.java

📁 EasyJWeb的框架代码
💻 JAVA
字号:
package com.easyjf.web.tools;

import java.util.*;

/**
 * 实现通过调用IQuery实现分页处理,其它特殊形式的分页查询需求只需要继承该类即可,比如DbPageList。具体的分页查询算法可以根据实际应用中的记录数、响应时间要求等选择适合的查询处理器IQuery,
 * 
 * @author 蔡世友
 * 
 */
public class PageList implements IPageList {
	private int rowCount;// 记录数

	private int pages;// 总页数

	private int currentPage;// 实际页数
	
	private List result;//查询结果集

	private IQuery query;//查询器

	public PageList() {

	}

	/**
	 * 根据查询器q构造一个分页处理对象
	 * @param q
	 */
	public PageList(IQuery q) {
		this.query = q;
	}

	/**
	 * 设置查询器
	 */
	public void setQuery(IQuery q) {
		query = q;
	}

	/**
	 * 返回查询结果集,只有在执行doList方法后才能取得正确的查询结果
	 */
	public List getResult() {
		return result;
	}


    /**
     * 根据每页记录数,页码,统计sql及实际查询sql执行查询操作
     */
	public void doList(int pageSize, int pageNo, String totalSQL,
			String queryHQL) {
		List rs = null;
		int total = query.getRows(totalSQL);
		if (total > 0) {
			this.rowCount = total;
			this.pages = (this.rowCount + pageSize - 1) / pageSize; // 记算总页数
			int intPageNo = (pageNo > this.pages ? this.pages : pageNo);
			if (intPageNo < 1)
				intPageNo = 1;
			this.currentPage = intPageNo;
			if (pageSize > 0) {
				query.setFirstResult((intPageNo - 1) * pageSize);
				query.setMaxResults(pageSize);
			}
			rs = query.getResult(queryHQL);
		}
		result = rs;
	}

	/**
	 * 根据每页记录数,页码,统计sql及实际查询sql及参数执行查询操作
	 */
	public void doList(int pageSize, int pageNo, String totalSQL,
			String queryHQL, Collection paraValues) {
		List rs = null;
		query.setParaValues(paraValues);
		int total = query.getRows(totalSQL);
		if (total > 0) {
			this.rowCount = total;
			this.pages = (this.rowCount + pageSize - 1) / pageSize; // 记算总页数
			int intPageNo = (pageNo > this.pages ? this.pages : pageNo);
			if (intPageNo < 1)
				intPageNo = 1;
			this.currentPage = intPageNo;
			if (pageSize > 0) {
				query.setFirstResult((intPageNo - 1) * pageSize);
				query.setMaxResults(pageSize);
			}
			rs = query.getResult(queryHQL);
		}
		result = rs;
	}
    /**
     * 返回总页数
     */
	public int getPages() {
		return pages;
	}
    /**
     * 返回总记录数
     */
	public int getRowCount() {
		return rowCount;
	}
    /**
     * 返回当前页
     */
	public int getCurrentPage() {
		return currentPage;
	}

}

⌨️ 快捷键说明

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