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

📄 queryexecutor.java

📁 《j2ee开发全程实录》随书源码
💻 JAVA
字号:
package com.cownew.PIS.ui.ctrl.query;

import java.util.List;

import com.cownew.PIS.framework.client.ClientMetaDataLoaderFactory;
import com.cownew.PIS.framework.common.IBaseDAO;
import com.cownew.PIS.framework.common.PagingQueryParam;
import com.cownew.PIS.framework.common.db.Selectors;
import com.cownew.PIS.framework.common.metaDataMgr.EntityFieldModelInfo;
import com.cownew.PIS.framework.common.metaDataMgr.EntityModelInfo;
import com.cownew.PIS.framework.common.metaDataMgr.IMetaDataLoader;
import com.cownew.PIS.framework.common.metaDataMgr.NameUtils;
import com.cownew.PIS.framework.common.utils.KeyValueList;
import com.cownew.ctk.common.StringUtils;

public class QueryExecutor
{
	private IBaseDAO baseDAO;

	private Selectors selectors;

	private String oql;

	private QueryColumnPropertyList columnList;

	private KeyValueList sqlParams;

	private String voClassName;

	public QueryExecutor(IBaseDAO baseDAO)
	{
		super();
		this.baseDAO = baseDAO;
		this.voClassName = NameUtils.getVOClassName(baseDAO.getEntityPath());
	}

	public void setSelectors(Selectors selectors)
	{
		this.selectors = selectors;
	}

	public QueryColumnPropertyList getColumnList()
	{
		return columnList;
	}

	public void setColumnList(QueryColumnPropertyList columnList)
	{
		this.columnList = columnList;
	}

	public IBaseDAO getBaseDAO()
	{
		return baseDAO;
	}

	public void setOQL(String oql)
	{
		this.oql = oql;
	}

	public void setSqlParams(KeyValueList sqlParams)
	{
		this.sqlParams = sqlParams;
	}

	/**
	 * 查询数据(不进行分页查询,一次性查询出所有数据)
	 * @return
	 * @
	 */
	public List executeQuery()
	{
		return executeQuery(null);
	}

	/**
	 * 查询数据(进行分页查询)
	 * @param pagingParam
	 * @return
	 * @
	 */
	public List executeQuery(PagingQueryParam pagingParam)
	{
		if (columnList == null || columnList.size() <= 0)
		{
			createDefaultPropertyList();
		}

		if (StringUtils.isEmpty(oql))
		{

			oql = "from " + voClassName;
		}

		return baseDAO.load(oql, sqlParams, selectors, pagingParam);
	}

	/**
	 * 当用户没有指定ColumnList属性的时候创建默认的ColumnList
	 */
	private void createDefaultPropertyList()
	{
		columnList = new QueryColumnPropertyList();
		IMetaDataLoader metaLoader = ClientMetaDataLoaderFactory.getLoader();
		EntityModelInfo emi = metaLoader.loadEntityByEntityPath(baseDAO
				.getEntityPath());
		String pkProperty = emi.getPrimaryKey();
		List fields = emi.getFields();
		for (int i = 0, n = fields.size(); i < n; i++)
		{
			EntityFieldModelInfo fieldInfo = (EntityFieldModelInfo) fields
					.get(i);
			if (fieldInfo.isLinkProperty())
			{
				continue;
			}
			
			if (fieldInfo.getName().equals(pkProperty))
			{
				QueryColumnProperty property = new QueryColumnProperty(
						pkProperty, false);
				columnList.add(property);
			} else
			{
				QueryColumnProperty property = new QueryColumnProperty(
						fieldInfo.getName(), fieldInfo.getAlias(), true);
				columnList.add(property);
			}
		}
	}
}

⌨️ 快捷键说明

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