mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-09-27 00:54:49 +08:00
feat:support Serializable
This commit is contained in:
@ -37,6 +37,9 @@ public class DlExecuteParam {
|
||||
private String databaseName;
|
||||
|
||||
|
||||
private String tableName;
|
||||
|
||||
|
||||
/**
|
||||
* schema name
|
||||
*/
|
||||
|
@ -27,6 +27,14 @@ public interface DlTemplateService {
|
||||
ListResult<ExecuteResult> execute(DlExecuteParam param);
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
ListResult<ExecuteResult> executeSelectTable(DlExecuteParam param);
|
||||
|
||||
|
||||
/**
|
||||
* Data source execution update
|
||||
*
|
||||
|
@ -111,11 +111,6 @@
|
||||
<artifactId>chat2db-presto</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ai.chat2db</groupId>
|
||||
<artifactId>chat2db-redis</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ai.chat2db</groupId>
|
||||
<artifactId>chat2db-sqlite</artifactId>
|
||||
|
@ -17,7 +17,6 @@ import ai.chat2db.spi.ValueHandler;
|
||||
import ai.chat2db.spi.model.*;
|
||||
import ai.chat2db.spi.sql.Chat2DBContext;
|
||||
import ai.chat2db.spi.sql.ConnectInfo;
|
||||
import ai.chat2db.spi.sql.SQLExecutor;
|
||||
import ai.chat2db.spi.util.JdbcUtils;
|
||||
import ai.chat2db.spi.util.SqlUtils;
|
||||
import com.alibaba.druid.DbType;
|
||||
@ -28,6 +27,7 @@ import com.alibaba.druid.sql.ast.statement.SQLSelectStatement;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@ -61,12 +61,15 @@ public class DlTemplateServiceImpl implements DlTemplateService {
|
||||
CommandExecutor executor = Chat2DBContext.getMetaData().getCommandExecutor();
|
||||
Command command = commandConverter.param2model(param);
|
||||
List<ExecuteResult> results = executor.execute(command);
|
||||
return reBuildHeader(results,param.getSchemaName(),param.getDatabaseName());
|
||||
}
|
||||
|
||||
private ListResult<ExecuteResult> reBuildHeader(List<ExecuteResult> results,String schemaName,String databaseName){
|
||||
ListResult<ExecuteResult> listResult = ListResult.of(results);
|
||||
for (ExecuteResult executeResult : results) {
|
||||
List<Header> headers = executeResult.getHeaderList();
|
||||
if (executeResult.getSuccess() && executeResult.isCanEdit() && CollectionUtils.isNotEmpty(headers)) {
|
||||
headers = setColumnInfo(headers, executeResult.getTableName(), param.getSchemaName(),
|
||||
param.getDatabaseName());
|
||||
headers = setColumnInfo(headers, executeResult.getTableName(), schemaName, databaseName);
|
||||
executeResult.setHeaderList(headers);
|
||||
}
|
||||
if (!executeResult.getSuccess()) {
|
||||
@ -77,12 +80,13 @@ public class DlTemplateServiceImpl implements DlTemplateService {
|
||||
addOperationLog(executeResult);
|
||||
}
|
||||
return listResult;
|
||||
}
|
||||
|
||||
// if ("SQLSERVER".equalsIgnoreCase(type)) {
|
||||
// RemoveSpecialGO(param);
|
||||
// }
|
||||
|
||||
|
||||
@Override
|
||||
public ListResult<ExecuteResult> executeSelectTable(DlExecuteParam param) {
|
||||
Command command = commandConverter.param2model(param);
|
||||
List<ExecuteResult> results = Chat2DBContext.getMetaData().getCommandExecutor().executeSelectTable(command);
|
||||
return reBuildHeader(results,param.getSchemaName(),param.getDatabaseName());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -159,8 +163,9 @@ public class DlTemplateServiceImpl implements DlTemplateService {
|
||||
@Override
|
||||
public DataResult<String> updateSelectResult(UpdateSelectResultParam param) {
|
||||
SqlBuilder sqlBuilder = Chat2DBContext.getSqlBuilder();
|
||||
String sql = sqlBuilder.generateSqlBasedOnResults(param.getTableName(), param.getHeaderList(),
|
||||
param.getOperations());
|
||||
QueryResult queryResult = new QueryResult();
|
||||
BeanUtils.copyProperties(param, queryResult);
|
||||
String sql = sqlBuilder.buildSqlByQuery(queryResult);
|
||||
return DataResult.of(sql);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user