postgresql已知问题修复

postgresql支持表数据页面直接修改数据
This commit is contained in:
diant
2023-06-21 10:03:10 +08:00
parent 705c2499db
commit 80c9299532
6 changed files with 76 additions and 23 deletions

View File

@@ -1,6 +1,8 @@
package com.zyplayer.doc.db.service.database;
import com.zyplayer.doc.db.controller.param.DataViewParam;
import com.zyplayer.doc.db.framework.db.enums.DatabaseProductEnum;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
/**
@@ -16,4 +18,38 @@ public class PostgresqlServiceImpl extends DbBaseService {
public DatabaseProductEnum getDatabaseProduct() {
return DatabaseProductEnum.POSTGRESQL;
}
/**
* Postgresql中没有use语句,指定数据库名的情况下直接返回空即可
* @author diantu
* @since 2023-06-20
*/
@Override
public String getUseDbSql(String dbName) {
return null;
}
/**
* 获取分页查询的SQL
*
* @return 分页查询的SQL
* @author diantu
* @since 2023年6月20日
*/
@Override
public String getQueryPageSql(DataViewParam dataViewParam) {
String queryColumns = StringUtils.defaultIfBlank(dataViewParam.getRetainColumn(), "*");
StringBuilder sqlSb = new StringBuilder();
//postgresql记录的ctid会随着update变化与oracle中的伪列有本质区别oracle达梦里的rowid可以理解成持久化数据
//TODO 在高并发下依赖ctid修改数据可能会有业务逻辑问题
sqlSb.append(String.format("select cast(ctid as varchar) as ZYPLAYDBCTID,%s from %s.%s", queryColumns, dataViewParam.getDbName(), dataViewParam.getTableName()));
if (StringUtils.isNotBlank(dataViewParam.getCondition())) {
sqlSb.append(String.format(" where %s", dataViewParam.getCondition()));
}
if (StringUtils.isNotBlank(dataViewParam.getOrderColumn()) && StringUtils.isNotBlank(dataViewParam.getOrderType())) {
sqlSb.append(String.format(" order by %s %s", dataViewParam.getOrderColumn(), dataViewParam.getOrderType()));
}
sqlSb.append(String.format(" limit %s offset %s", dataViewParam.getPageSize(), dataViewParam.getOffset()));
return sqlSb.toString();
}
}

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.be60d3b3.css" rel="preload" as="style"><link href="css/index.535cd330.css" rel="preload" as="style"><link href="js/chunk-vendors.7871ff07.js" rel="preload" as="script"><link href="js/index.bdeb7df4.js" rel="preload" as="script"><link href="css/chunk-vendors.be60d3b3.css" rel="stylesheet"><link href="css/index.535cd330.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.7871ff07.js"></script><script src="js/index.bdeb7df4.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.be60d3b3.css" rel="preload" as="style"><link href="css/index.dd934fd5.css" rel="preload" as="style"><link href="js/chunk-vendors.7871ff07.js" rel="preload" as="script"><link href="js/index.75921495.js" rel="preload" as="script"><link href="css/chunk-vendors.be60d3b3.css" rel="stylesheet"><link href="css/index.dd934fd5.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.7871ff07.js"></script><script src="js/index.75921495.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