📄 doqueryaction.java
字号:
/*
* Created on 2004-4-2
*
*/
package com.esimple.service.query.action;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.esimple.framework.web.action.BaseAction;
import com.esimple.framework.web.action.BaseForm;
import com.esimple.service.rbac.*;
import com.esimple.service.query.*;
import com.esimple.service.query.config.*;
/**
* @author steven
*
*/
public class DoQueryAction extends BaseAction {
private QueryExecutor execute ;
public void setExecute(QueryExecutor execute){
this.execute = execute;
}
public String execute(
BaseForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
//使用查询的角色
String role = form.getValueAsString("role",true);
//查询编号
String queryId = form.getValueAsString("queryid",true);
String debugSql = form.getValueAsString("debug",true);
//结果展示类型:目前除了web叶面外,支持execel导出
String resultType = form.getValueAsString("resultType",true);
if( resultType != null ){
if( resultType.equalsIgnoreCase("excel")){
form.setValue("pageLength","-1");
}
}
logger.debug("begin query with role:<" + role + ">,query:<"+queryId+">");
User user = (User)request.getSession().getAttribute(User.SESSION_KEY);
HashMap context = (HashMap)form.getValues();
context.put("user",user);
QueryConfig query = getQueryConfig(queryId);
if( debugSql != null ){
if( debugSql.equalsIgnoreCase("true")){
String sql = execute.toSql(query,role,context);
form.setValue("sql",sql);
return "debug";
}
}
List list = execute.execute(query,role,context);
//统计结果记录数
rowCount(form,query,list,context);
form.setValue( "recordCount", list.size() );
request.setAttribute("result",list);
request.setAttribute("query",query);
if(resultType == null) return FORWARD_SUCCESS ;
if( resultType.equalsIgnoreCase("excel") )return resultType;
else return FORWARD_SUCCESS ;
}
/**
* 统计结果集记录行数
* @param form
* @param query
*/
private void rowCount(BaseForm form,QueryConfig query,List list,HashMap context)
throws Exception{
String rowCount = form.getValueAsString("rowCount",true);
String role = form.getValueAsString("role",true);
if( query.isCount() ) {
if( query.getPageLength() == -1 ) {
//如果不分页,结果记录数就是结果集数量
form.setValue("rowCount",list.size());
}else if( rowCount == null ){
//如果分页,而且还没有统计过记录数
int rows = execute.getRowCount(query,role,context);
form.setValue("rowCount",rows);
}
}
}
private QueryConfig getQueryConfig(String queryId) throws Exception {
QueryAdmin admin = (QueryAdmin)servlet.getServletContext().getAttribute("QUERY_ADMIN");
QueryConfig query =admin.getQuery(queryId);
return query;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -