dbpagelist.java

来自「一个简单的java邮件系统源码」· Java 代码 · 共 75 行

JAVA
75
字号
package com.easyjf.web.tools;

import java.util.Collection;
import com.easyjf.dbo.DBMapping;
import com.easyjf.dbo.DBObject;

/**
 * 使用EasyDBO实现的数据分页查询
 * 
 * @author 大峡
 * 
 */
public class DbPageList extends PageList {
	private String scope;

	private Class cls;
	
	private IDAO dao;
	/**
	 * 默认构造子,若不根查询参数表示直接查某个表中的所有数据
	 * 
	 */
	public DbPageList() {
		this(DBObject.class, "1=1");
	}

	/**
	 * 根据类名cls及查询条件scope构造一个数据库分页查询类
	 * 
	 * @param cls
	 * @param scope
	 */
	public DbPageList(Class cls, String scope) {
		this(cls, scope, null);
	}

	/**
	 * 根据类名cls、查询条件scope及查询参数paras构造一个数据库分页查询类
	 * 
	 * @param cls
	 * @param scope
	 * @param paras
	 */
	public DbPageList(Class cls, String scope, Collection paras) {
		this(cls,scope,paras,EasyDBODAO.getInstance());
	}
	public DbPageList(Class cls, String scope, Collection paras,IDAO dao) {
		this.cls = cls;
		this.scope = scope;
		IQuery query = new DbQuery(dao, cls);
		query.setParaValues(paras);
		this.setQuery(query);
	}

	/**
	 * 执行查询操作,只有执行doList(int,int)后,才能从分页查询引擎中取出正确的数据
	 * 
	 * @param currentPage
	 * @param pageSize
	 */
	public void doList(int currentPage, int pageSize) {
		String totalSql = "select count(*) from "
				+ DBMapping.getInstance().findTable(cls).getName() + " where "
				+ scope;
		super.doList(pageSize, currentPage, totalSql, scope);
	}
	public void setDao(IDAO dao) {
		this.dao = dao;
	}

	public void setScope(String scope) {
		this.scope = scope;
	}	
}

⌨️ 快捷键说明

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