...
|
...
|
@@ -124,14 +124,17 @@ public class SqlOperateServiceImpl implements SqlOperateService { |
|
|
BaseResponse res=null;
|
|
|
Map<String,Object> rtnList=new HashMap<String,Object>();
|
|
|
String queryDescr="";
|
|
|
String hasNext="no";//分页,是否存在下一页
|
|
|
boolean showSeqNOColumn=false;
|
|
|
String seqNOColumnName="_seqno_column_numberIndex";
|
|
|
String sql = sqlOperateModel.getQueryContent();
|
|
|
if(sql.endsWith(";")){
|
|
|
sql = sql.substring(0,sql.length()-1);
|
|
|
}
|
|
|
boolean descOrShowFlag=false;
|
|
|
/*boolean descOrShowFlag=false;
|
|
|
if(sql.toLowerCase().startsWith("desc ")||sql.toLowerCase().startsWith("show ")){
|
|
|
descOrShowFlag=true;
|
|
|
}
|
|
|
}*/
|
|
|
|
|
|
log.info("query4Table begin "+sql);
|
|
|
|
...
|
...
|
@@ -160,12 +163,14 @@ public class SqlOperateServiceImpl implements SqlOperateService { |
|
|
st = con.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
|
|
|
st.setFetchSize(FETCH_COUNT_FROM_MYSQL);
|
|
|
//不是desc的查询需要限定数量了
|
|
|
if(!descOrShowFlag){
|
|
|
st.setMaxRows(FETCH_COUNT_FROM_MYSQL);
|
|
|
}
|
|
|
//前台有了分页,不再需要设定desc的限定数量
|
|
|
//if(!descOrShowFlag){
|
|
|
st.setMaxRows(MAX_QUERY_RESULT_COUNT*sqlOperateModel.getCurrentPage() +FETCH_COUNT_FROM_MYSQL);
|
|
|
// }
|
|
|
//st.setMaxRows(FETCH_COUNT_FROM_MYSQL);
|
|
|
rs = st.executeQuery(sql);
|
|
|
|
|
|
rs.beforeFirst();
|
|
|
rs.relative(MAX_QUERY_RESULT_COUNT*sqlOperateModel.getCurrentPage());
|
|
|
JSONArray ja_column=new JSONArray();
|
|
|
JSONArray ja_data=new JSONArray();
|
|
|
List<String> colNameList=new ArrayList<String>();
|
...
|
...
|
@@ -207,11 +212,19 @@ public class SqlOperateServiceImpl implements SqlOperateService { |
|
|
jo_header.put("field",rsmd.getColumnName(i));
|
|
|
ja_column.add(jo_header);
|
|
|
}
|
|
|
|
|
|
if(showSeqNOColumn){
|
|
|
JSONObject jo_header=new JSONObject();
|
|
|
jo_header.put("title","序号");
|
|
|
jo_header.put("field",seqNOColumnName);
|
|
|
jo_header.put("width","60px");
|
|
|
ja_column.add(0,jo_header);
|
|
|
}
|
|
|
while (rs.next()) {
|
|
|
times++;
|
|
|
if(!descOrShowFlag&×>MAX_QUERY_RESULT_COUNT){
|
|
|
queryDescr="数据量超过limit限制,自动显示前"+MAX_QUERY_RESULT_COUNT+"条";
|
|
|
//if(!descOrShowFlag&×>MAX_QUERY_RESULT_COUNT){
|
|
|
if(times>MAX_QUERY_RESULT_COUNT){
|
|
|
queryDescr="数据量超过限制,本页只显示"+MAX_QUERY_RESULT_COUNT+"条";
|
|
|
hasNext="yes";
|
|
|
break;
|
|
|
}
|
|
|
count++;
|
...
|
...
|
@@ -242,6 +255,9 @@ public class SqlOperateServiceImpl implements SqlOperateService { |
|
|
}
|
|
|
jo_body.put(colNameList.get(j-1),value == null ? "" :("<script type='text/html' style='display:block'>"+String.valueOf(value)+"</script>"));
|
|
|
}
|
|
|
if(showSeqNOColumn){
|
|
|
jo_body.put(seqNOColumnName,times);
|
|
|
}
|
|
|
ja_data.add(jo_body);
|
|
|
|
|
|
|
...
|
...
|
@@ -288,8 +304,9 @@ public class SqlOperateServiceImpl implements SqlOperateService { |
|
|
log.error("sqlOperateServiceImpl query4Table sqlOperateLogs insert异常:[" + sqlOperateModel.getQueryContent(), "sql=" + sql + "]", e);
|
|
|
}
|
|
|
}
|
|
|
rtnList.put("queryDescr", StringUtils.isBlank(queryDescr)?("共查询到"+count+"条数据"):queryDescr);
|
|
|
rtnList.put("queryDescr", StringUtils.isBlank(queryDescr)?("本页共查询到"+count+"条数据"):queryDescr);
|
|
|
rtnList.put("queryCount",count);
|
|
|
rtnList.put("hasNext",hasNext);
|
|
|
res=new BaseResponse();
|
|
|
res.setData(rtnList);
|
|
|
return res;
|
...
|
...
|
@@ -304,7 +321,9 @@ public class SqlOperateServiceImpl implements SqlOperateService { |
|
|
if(StringUtils.isBlank(sqlOperateModel.getDataSourcePwd())){
|
|
|
sqlOperateModel.setDataSourcePwd(DATA_SOURCE_PWD);
|
|
|
}
|
|
|
|
|
|
if(sqlOperateModel.getCurrentPage()<0){
|
|
|
sqlOperateModel.setCurrentPage(0);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
...
|
...
|
|