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

📄 pagehelper.java

📁 文件上传用例,纯sql分页源码,有用的着地方请下载 试用
💻 JAVA
字号:
package org.derrick.jdbc.page;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.beanutils.RowSetDynaClass;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.derrick.jdbc.ConnectionFactory;
import org.derrick.jdbc.page.sql.PageSqlHelper;

/**
 * 用于分页的辅助类,若有提供 DbToObject 接口, 则返回的对象类型由改接口确定,否则返回的对象类型为:DynaBean
 * 
 * @see org.apache.commons.beanutils.DynaBean
 * @see DbToObject
 * @author 刘冬宝Oct 26, 2006
   版权申明:所有人员均可自由修改源码并再发布,但必须保留此相关信息
 * 
 */

public class PageHelper {

	private Connection conn = null;

	private DbToObject dbToObject = null;

	protected final Logger logger = LogManager.getLogger(getClass());

	private PageSqlHelper pageSqlHelper = null;

	public PageHelper(Connection conn, PageSqlHelper pageSqlHelper) {
		this(conn, pageSqlHelper, null);
	}

	public PageHelper(Connection conn, PageSqlHelper pageSqlHelper,
			DbToObject dbToObject) {
		this.conn = conn;
		this.pageSqlHelper = pageSqlHelper;
		this.dbToObject = dbToObject;
		this.init();
	}

	public DbToObject getDbToObject() {
		return dbToObject;
	}
	/**
	 * 如果条件中包含有?形式参数,请改写该方法,并设置相应的参数
	 * @param pst
	 */
	public void preparedPageStatemet(PreparedStatement pst){
		
	}

	/**
	 * 返回该页的对象集合,若有提供 DbToObject 接口, 则返回的对象类型由改接口确定,否则返回的对象类型为:DynaBean
	 * 若页码无效则返回empty list
	 * 
	 * @param pageNo
	 *            页码
	 * @return
	 * @see org.apache.commons.beanutils.DynaBean
	 * @see DbToObject
	 */
	public List getPage(int pageNo) {
		List results = null;
		PreparedStatement pst = null;
		ResultSet rs = null;
		try {
			pst = conn.prepareStatement(this.pageSqlHelper.getPageSql(pageNo));
			preparedPageStatemet(pst);
			rs = pst.executeQuery();
			int rownum = 1;
			if (this.dbToObject == null) {
				RowSetDynaClass rsdc = new RowSetDynaClass(rs);
				results = rsdc.getRows();
			} else {
				results = new ArrayList();
				while (rs.next()) {
					Object result = this.dbToObject.mapRow(rs, rownum);
					rownum++;
					results.add(result);
				}
			}
		} catch (InvalidPageNoException e) {
			logger.error(null, e);
			results = new ArrayList(0);
		} catch (Exception e) {
			logger.error(null, e);
			throw new RuntimeException(e);
		} finally {
			ConnectionFactory.closeResultSet(rs);
			ConnectionFactory.closeStatement(pst);
		}
		return results;
	}

	public PageSqlHelper getPageSqlHelper() {
		return pageSqlHelper;
	}

	/**
	 * 
	 * @return 总页数
	 */
	public int getTotalPage() {
		return this.pageSqlHelper.getTotalPage();
	}

	/**
	 * 
	 * @return 总记录数
	 */
	public int getRecordTotalnum() {
		return this.pageSqlHelper.getRecordTotalnum();
	}

	/**
	 * 初始化必要的参数,主要是获取总记录数。
	 * 
	 */
	private void init() {
		PreparedStatement pst = null;
		ResultSet rs = null;
		try {
			pst = conn.prepareStatement(this.pageSqlHelper
					.getRecordTotalnumSql());
			rs = pst.executeQuery();
			rs.next();
			int totalRecordCount = rs.getInt(1);
			logger.debug("totalRecordCount:" + totalRecordCount);
			this.pageSqlHelper.setRecordTotalnum(totalRecordCount);
		} catch (SQLException e) {
			logger.error(null, e);
			throw new RuntimeException(e);
		} finally {
			ConnectionFactory.closeResultSet(rs);
			ConnectionFactory.closeStatement(pst);
		}

	}

	public void setDbToObject(DbToObject dbToObject) {
		this.dbToObject = dbToObject;
	}

	public void setPageSqlHelper(PageSqlHelper pageSqlHelper) {
		this.pageSqlHelper = pageSqlHelper;
	}

	public void setRecordPageCount(int count) {
		this.pageSqlHelper.setRecordnumPerPage(count);
	}
}

⌨️ 快捷键说明

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