Fixed the problem of direct query table data error due to characters

This commit is contained in:
SwallowGG
2023-12-29 11:39:26 +08:00
parent 09a6c91ece
commit 056df5d273
10 changed files with 43 additions and 10 deletions

View File

@ -96,11 +96,9 @@
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>com.manticore-projects.jsqlformatter</groupId>
<artifactId>jsqlformatter</artifactId>
<version>1.0.0</version>
<groupId>com.github.vertical-blank</groupId>
<artifactId>sql-formatter</artifactId>
</dependency>
</dependencies>

View File

@ -23,6 +23,7 @@ import ai.chat2db.server.web.api.controller.rdb.vo.ExecuteResultVO;
import ai.chat2db.server.web.api.http.GatewayClientService;
import ai.chat2db.server.web.api.http.request.SqlExecuteHistoryCreateRequest;
import ai.chat2db.server.web.api.util.ApplicationContextUtil;
import ai.chat2db.spi.MetaData;
import ai.chat2db.spi.model.ExecuteResult;
import ai.chat2db.spi.sql.Chat2DBContext;
import com.google.common.collect.Lists;
@ -124,11 +125,12 @@ public class RdbDmlController {
if (DataSourceTypeEnum.MONGODB.getCode().equals(type)) {
param.setSql("db." + request.getTableName() + ".find()");
} else {
MetaData metaData = Chat2DBContext.getMetaData();
// 拼接`tableName`,避免关键字被占用问题
param.setSql("select * from " +"`"+ request.getTableName()+"`");
param.setSql("select * from " + metaData.getMetaDataName(request.getTableName()));
}
return dlTemplateService.execute(param)
.map(rdbWebConverter::dto2vo);
.map(rdbWebConverter::dto2vo);
}
/**

View File

@ -3,7 +3,7 @@ package ai.chat2db.server.web.api.controller.sql;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
import ai.chat2db.server.web.api.aspect.ConnectionInfoAspect;
import ai.chat2db.server.web.api.controller.sql.request.SqlFormatRequest;
import com.manticore.jsqlformatter.JSQLFormatter;
import com.github.vertical_blank.sqlformatter.SqlFormatter;
import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@ -27,7 +27,7 @@ public class SqlController {
public DataResult<String> list(@Valid SqlFormatRequest sqlFormatRequest) {
String sql = sqlFormatRequest.getSql();
try {
sql = JSQLFormatter.format(sql);
sql = SqlFormatter.format(sql);
} catch (Exception e) {
// ignore
}