mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-07-31 11:42:41 +08:00
support table edit
This commit is contained in:
@ -62,6 +62,7 @@ public enum MysqlCollationEnum {
|
|||||||
return collation;
|
return collation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static List<Collation> getCollations() {
|
public static List<Collation> getCollations() {
|
||||||
return Arrays.asList(MysqlCollationEnum.values()).stream().map(MysqlCollationEnum::getCollation).collect(java.util.stream.Collectors.toList());
|
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;
|
package ai.chat2db.server.web.api.controller.rdb;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import ai.chat2db.server.domain.api.param.DlExecuteParam;
|
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.request.DmlRequest;
|
||||||
import ai.chat2db.server.web.api.controller.rdb.vo.ExecuteResultVO;
|
import ai.chat2db.server.web.api.controller.rdb.vo.ExecuteResultVO;
|
||||||
import ai.chat2db.spi.model.ExecuteResult;
|
import ai.chat2db.spi.model.ExecuteResult;
|
||||||
|
import ai.chat2db.spi.sql.Chat2DBContext;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
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.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
@ -42,7 +45,7 @@ public class RdbDmlController {
|
|||||||
* @param request
|
* @param request
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@RequestMapping(value = "/execute",method = {RequestMethod.POST, RequestMethod.PUT})
|
@RequestMapping(value = "/execute", method = {RequestMethod.POST, RequestMethod.PUT})
|
||||||
public ListResult<ExecuteResultVO> manage(@RequestBody DmlRequest request) {
|
public ListResult<ExecuteResultVO> manage(@RequestBody DmlRequest request) {
|
||||||
DlExecuteParam param = rdbWebConverter.request2param(request);
|
DlExecuteParam param = rdbWebConverter.request2param(request);
|
||||||
ListResult<ExecuteResult> resultDTOListResult = dlTemplateService.execute(param);
|
ListResult<ExecuteResult> resultDTOListResult = dlTemplateService.execute(param);
|
||||||
@ -50,6 +53,47 @@ public class RdbDmlController {
|
|||||||
return ListResult.of(resultVOS);
|
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