表数据页面优化

已知问题修复
This commit is contained in:
diant
2023-05-17 23:48:26 +08:00
parent 98aa22f6a6
commit f74e53c7ea
11 changed files with 219 additions and 30 deletions

View File

@@ -1,5 +1,6 @@
package com.zyplayer.doc.db.controller;
import cn.hutool.core.util.StrUtil;
import com.alibaba.druid.DbType;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.ast.statement.SQLSelectStatement;
@@ -54,8 +55,20 @@ public class DbSqlExecutorController {
@Resource
DatabaseServiceFactory databaseServiceFactory;
/**
* sql执行器
* @param sourceId
* @param executeId
* @param dbName
* @param sql
* @param params
* @param pageSize
* @param pageNum
* @param type noPage:无分页 其他:有分页
* @return
*/
@PostMapping(value = "/execute")
public DocDbResponseJson execute(Long sourceId, String executeId, String dbName, String sql, String params,Integer pageSize,Integer pageNum) {
public DocDbResponseJson execute(Long sourceId, String executeId, String dbName, String sql, String params,Integer pageSize,Integer pageNum,String type) {
if (StringUtils.isBlank(sql)) {
return DocDbResponseJson.warn("执行的SQL不能为空");
}
@@ -118,9 +131,17 @@ public class DbSqlExecutorController {
executeParam.setExecuteId(executeId);
executeParam.setExecuteType(executeType);
executeParam.setPrefixSql(useDbSql);
executeParam.setMaxRows(1000);
if(!StrUtil.equals(type,"noPage")){
executeParam.setMaxRows(1000);
}
//sql解析类型为select
if(map.get("sqlType").equals("select")){
if(StrUtil.equals(type,"noPage")){
executeParam = SqlParseUtil.getSingleExecuteParam(executeParam,originalSql, paramMap);
executeResult = columnSqlExecutor.execute(executeParam);
resultList.add(executeResult);
continue;
}
//获取总数据量sql
String getAllCountSql = map.get("getAllCountSql").toString();
executeParam = SqlParseUtil.getSingleExecuteParam(executeParam,getAllCountSql, paramMap);

View File

@@ -73,7 +73,7 @@ public class OracleServiceImpl extends DbBaseService {
StringBuilder sqlSbFinal = new StringBuilder();
Integer pageSize = dataViewParam.getPageSize() * dataViewParam.getPageNum();
Integer pageNum = dataViewParam.getPageSize() * (dataViewParam.getPageNum() - 1) + 1;
sqlSbFinal.append(String.format("select * from ( select %s from %s", queryColumns + ",rownum rn", "(" + sqlSb + ") where rownum<=" + pageSize + " ) t2 where t2.rn >=" + pageNum));
sqlSbFinal.append(String.format("select %s from ( select %s from %s",queryColumns, queryColumns + ",rownum rn", "(" + sqlSb + ") where rownum<=" + pageSize + " ) t2 where t2.rn >=" + pageNum));
return sqlSbFinal.toString();
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon-db.png"><title>数据库文档管理</title><link href="css/chunk-vendors.2fa4c9b3.css" rel="preload" as="style"><link href="css/index.b0265f2f.css" rel="preload" as="style"><link href="js/chunk-vendors.e736cdfe.js" rel="preload" as="script"><link href="js/index.416a165d.js" rel="preload" as="script"><link href="css/chunk-vendors.2fa4c9b3.css" rel="stylesheet"><link href="css/index.b0265f2f.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but zyplayer-db-ui doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="js/chunk-vendors.e736cdfe.js"></script><script src="js/index.416a165d.js"></script></body></html>
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon-db.png"><title>数据库文档管理</title><link href="css/chunk-vendors.2fa4c9b3.css" rel="preload" as="style"><link href="css/index.dae5507e.css" rel="preload" as="style"><link href="js/chunk-vendors.3d6daf5c.js" rel="preload" as="script"><link href="js/index.f05f599e.js" rel="preload" as="script"><link href="css/chunk-vendors.2fa4c9b3.css" rel="stylesheet"><link href="css/index.dae5507e.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but zyplayer-db-ui doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="js/chunk-vendors.3d6daf5c.js"></script><script src="js/index.f05f599e.js"></script></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long