修复:达梦数据库查询数据时,关键词导致的报错
This commit is contained in:
@@ -1,8 +1,12 @@
|
|||||||
package com.zyplayer.doc.db.service.database;
|
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 com.zyplayer.doc.db.framework.db.enums.DatabaseProductEnum;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 达梦数据查询服务实现类
|
* 达梦数据查询服务实现类
|
||||||
*
|
*
|
||||||
@@ -26,4 +30,41 @@ public class DmServiceImpl extends DbBaseService {
|
|||||||
public String getUseDbSql(String dbName) {
|
public String getUseDbSql(String dbName) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分页查询的SQL
|
||||||
|
*
|
||||||
|
* @return 分页查询的SQL
|
||||||
|
* @author diantu
|
||||||
|
* @since 2023年2月6日
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String getQueryPageSql(DataViewParam dataViewParam) {
|
||||||
|
String queryColumns = StringUtils.defaultIfBlank(dataViewParam.getRetainColumn(), "*");
|
||||||
|
if(!Objects.equals(queryColumns, "*")){
|
||||||
|
String[] queryColumnsArray = queryColumns.split(",");
|
||||||
|
String resultString = "";
|
||||||
|
for(int i=0;i<queryColumnsArray.length;i++){
|
||||||
|
if(queryColumnsArray[i].equalsIgnoreCase("IDENTITY")){
|
||||||
|
queryColumnsArray[i] = "\"IDENTITY\"";
|
||||||
|
}
|
||||||
|
if(i < queryColumnsArray.length-1){
|
||||||
|
resultString +=queryColumnsArray[i] + ",";
|
||||||
|
}else{
|
||||||
|
resultString +=queryColumnsArray[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
queryColumns = resultString;
|
||||||
|
}
|
||||||
|
StringBuilder sqlSb = new StringBuilder();
|
||||||
|
sqlSb.append(String.format("select %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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user