mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-07-30 19:22:58 +08:00
support table edit
This commit is contained in:
@ -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());
|
||||
}
|
||||
|
@ -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", "");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 统计行的数量
|
||||
*
|
||||
|
Reference in New Issue
Block a user