📄 mssqlresultsaction.java
字号:
// $Id: MSSQLResultsAction.java $Date: 2007-10-16 上午06:36:54 $
// $Id: MSSQLResultsAction.java $Date: 2007-10-16 上午06:36:54 $
package org.speedframework.action.mssql;
import java.util.List;
import org.speedframework.action.AbstractResultsAction;
import org.speedframework.entity.Pagination;
import org.speedframework.entity.ParamEntity;
import org.speedframework.exception.SpeedFrameworkException;
import org.speedframework.message.IMessage;
import org.speedframework.sql.ISelectSQL;
/**
* Class MSSQLResultsAction
*
* @author <a href="mailto:santafeng@gmail.com"> lizf </a>
* @version $Revision:1.0.0, $Date: 2007-10-16 上午06:36:54 $
*/
public class MSSQLResultsAction extends AbstractResultsAction {
public void doAction(IMessage message) {
log.debug("Speed Query is GetResults...");
// String limitSql;
String count;
ParamEntity entity = message.getParamEntity();
Object pojo = entity.getEntity();
String sql = entity.getSQL();
Object[] params = entity.getParam();
Pagination pagination = entity.getPagination();
Class vo = entity.getLoadclass();
try {
ISelectSQL sOffer = factory.getSelectSQL();
sOffer.setTableObject(pojo);
String countSql = sOffer.getCountSQL(sql);
count = (String) resultCache.getResults(countSql, params,
this.useCache);
if (count == null) {
count = Integer.toString(this.executor.getDataCount(countSql,
params));
resultCache.putResults(countSql, params, count, this.useCache);
}
pagination.setTotalCount(Integer.parseInt(count));
// 强制使用List数组截取分页,对于过大数据量存在严重问题。
String[] page = new String[2];
page[0] = new Integer(pagination.getCount() * pagination.getPage())
.toString();
page[1] = new Integer((pagination.getPage() - 1)
* pagination.getCount()).toString();
List li = (List) this.resultCache.getResults(sql, params,
this.useCache);
if (li == null) {
li = this.executor.select(sql, params, vo);
this.resultCache.putResults(sql, params, li, this.useCache);
}
int start = (pagination.getPage() - 1) * pagination.getCount();
int end = pagination.getCount() * pagination.getPage();
if (end > li.size()) {
this.result = li.subList(start, li.size());
} else {
this.result = li.subList(start, end);
}
} catch (Exception e) {
throw new SpeedFrameworkException("MSSQLResultsAction error ", e);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -