support table edit

This commit is contained in:
SwallowGG
2023-09-28 16:55:45 +08:00
parent aa550e354a
commit 27154c8138
2 changed files with 46 additions and 1 deletions

View File

@ -62,6 +62,7 @@ public enum MysqlCollationEnum {
return collation;
}
public static List<Collation> getCollations() {
return Arrays.asList(MysqlCollationEnum.values()).stream().map(MysqlCollationEnum::getCollation).collect(java.util.stream.Collectors.toList());
}

View File

@ -1,5 +1,6 @@
package ai.chat2db.server.web.api.controller.rdb;
import java.sql.Connection;
import java.util.List;
import ai.chat2db.server.domain.api.param.DlExecuteParam;
@ -12,7 +13,9 @@ import ai.chat2db.server.web.api.controller.rdb.request.DdlCountRequest;
import ai.chat2db.server.web.api.controller.rdb.request.DmlRequest;
import ai.chat2db.server.web.api.controller.rdb.vo.ExecuteResultVO;
import ai.chat2db.spi.model.ExecuteResult;
import ai.chat2db.spi.sql.Chat2DBContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@ -42,7 +45,7 @@ public class RdbDmlController {
* @param request
* @return
*/
@RequestMapping(value = "/execute",method = {RequestMethod.POST, RequestMethod.PUT})
@RequestMapping(value = "/execute", method = {RequestMethod.POST, RequestMethod.PUT})
public ListResult<ExecuteResultVO> manage(@RequestBody DmlRequest request) {
DlExecuteParam param = rdbWebConverter.request2param(request);
ListResult<ExecuteResult> resultDTOListResult = dlTemplateService.execute(param);
@ -50,6 +53,47 @@ public class RdbDmlController {
return ListResult.of(resultVOS);
}
/**
* 增删改查等数据运维
*
* @param request
* @return
*/
@RequestMapping(value = "/execute_ddl", method = {RequestMethod.POST, RequestMethod.PUT})
public DataResult<Long> executeDDL(@RequestBody DmlRequest request) {
DlExecuteParam param = rdbWebConverter.request2param(request);
Connection connection = Chat2DBContext.getConnection();
if (connection != null) {
try {
boolean flag = true;
String message = "";
connection.setAutoCommit(false);
ListResult<ExecuteResult> resultDTOListResult = dlTemplateService.execute(param);
List<ExecuteResultVO> resultVOS = rdbWebConverter.dto2vo(resultDTOListResult.getData());
if (!CollectionUtils.isEmpty(resultVOS)) {
for (ExecuteResultVO resultVO : resultVOS) {
if (!resultVO.getSuccess()) {
flag = false;
}
}
}
if (flag) {
connection.commit();
return DataResult.of(1L);
}else {
connection.rollback();
return DataResult.error("sql error",message);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
} else {
return DataResult.error("connection error", "");
}
}
/**
* 统计行的数量
*