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

📄 abstractquery.java

📁 羽量级数据持久层开发框架
💻 JAVA
字号:
package org.speedframework.engine;

import org.apache.log4j.Logger;

import org.speedframework.action.IActionBuilderFactory;
import org.speedframework.action.IResultsAction;
import org.speedframework.action.ISelectAction;
import org.speedframework.application.IApplication;
import org.speedframework.connection.IConnectionAdaptor;
import org.speedframework.entity.Pagination;
import org.speedframework.entity.ParamEntity;
import org.speedframework.exception.SpeedFrameworkException;
import org.speedframework.message.IMessage;
import org.speedframework.message.SynchronousSaveMessage;
import org.speedframework.message.state.IState;

import java.util.List;

public abstract class AbstractQuery implements Query {
	
	protected int index = 0;

	protected int maxResults = 0;

	protected static final Logger log = Logger.getLogger(AbstractQuery.class);

	protected IApplication application = null;

	protected boolean useCache = true;

	protected IActionBuilderFactory actionFactory;

	protected IConnectionAdaptor connectionAdaptor;

	public AbstractQuery(IApplication application,
			IActionBuilderFactory actionFactory,
			IConnectionAdaptor connectionAdaptor) {
		this.application = application;
		this.actionFactory = actionFactory;
		this.connectionAdaptor = connectionAdaptor;
	}

	public int getMaxCount(String SQL, Object[] params)
			throws SpeedFrameworkException {
		Pagination pagination=new Pagination();
		pagination.setPage(1);
		this.getResults(SQL, params, null, pagination);
		return pagination.getTotalCount();
	}

	public List getResults(String SQL, Object[] params, Class vo)
			throws SpeedFrameworkException {
		IMessage message = new SynchronousSaveMessage();
		ISelectAction action = actionFactory.getSelectAction();
		IState state = null;

		message.setAction(action);
		message.setApplicationID(application.getApplicationID());
		message.setState(state);

		ParamEntity entity = new ParamEntity();
		entity.setMaxResults(this.maxResults);
		entity.setIndex(this.index);
		entity.setSQL(SQL);
		entity.setParam(params);
		entity.setLoadclass(vo);
		entity.setConnectionAdaptor(this.connectionAdaptor);
		entity.setUseCacheStatus(this.useCache);
		message.setParamEntity(entity);
		application.dealMessage(message);

		// if (state.getState() == IState.FINISH) {
		// return (IPOJO) ((List) message.getPojos()).get(0);
		// }
		return (List) message.getPojos();
	}

	public List getResults(String SQL, Object[] params, Class vo,
			Pagination pagination) throws SpeedFrameworkException {
		IMessage message = new SynchronousSaveMessage();
		IResultsAction action = actionFactory.getResultsAction();
		IState state = null;

		message.setAction(action);
		message.setApplicationID(application.getApplicationID());
		message.setState(state);

		ParamEntity entity = new ParamEntity();

		entity.setSQL(SQL);
		entity.setParam(params);
		entity.setLoadclass(vo);
		entity.setPagination(pagination);
		entity.setUseCacheStatus(this.useCache);
		message.setParamEntity(entity);
		entity.setConnectionAdaptor(this.connectionAdaptor);
		application.dealMessage(message);

		// if (state.getState() == IState.FINISH) {
		// return (IPOJO) ((List) message.getPojos()).get(0);
		// }
		return (List) message.getPojos();
	}

	public boolean getUseCacheStatus() {
		return this.useCache;
	}

	public void setIndex(int begin) {
		this.index=begin;
	}

	public void setMaxResults(int results) {
		this.maxResults=results;
	}

	public void setUseCacheStatus(boolean useCache) {
		this.useCache = useCache;
	}
}

⌨️ 快捷键说明

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