mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-07-31 03:32:43 +08:00
add custom jdbc
This commit is contained in:
@ -1,19 +1,17 @@
|
||||
package ai.chat2db.server.domain.api.param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import ai.chat2db.spi.config.DriverConfig;
|
||||
import ai.chat2db.spi.model.KeyValue;
|
||||
import ai.chat2db.spi.model.SSHInfo;
|
||||
import ai.chat2db.spi.model.SSLInfo;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 数据源测试参数
|
||||
*
|
||||
@ -89,4 +87,10 @@ public class DataSourceTestParam {
|
||||
* 扩展信息
|
||||
*/
|
||||
private List<KeyValue> extendInfo;
|
||||
|
||||
|
||||
/**
|
||||
* 驱动配置
|
||||
*/
|
||||
private DriverConfig driverConfig;
|
||||
}
|
||||
|
@ -114,19 +114,18 @@ public class DataSourceServiceImpl implements DataSourceService {
|
||||
@Override
|
||||
public ActionResult preConnect(DataSourcePreConnectParam param) {
|
||||
DataSourceTestParam testParam
|
||||
= dataSourceConverter.param2param(param);
|
||||
|
||||
// todo
|
||||
// DriverConfig driverConfig = new DriverConfig();
|
||||
// driverConfig.setJdbcDriver(param.getDriver());
|
||||
// driverConfig.setJdbcDriverClass(param.getDriver());
|
||||
DriverConfig driverConfig = Chat2DBContext.getDefaultDriverConfig(param.getType());
|
||||
= dataSourceConverter.param2param(param);
|
||||
DriverConfig driverConfig = testParam.getDriverConfig();
|
||||
if (driverConfig == null || !driverConfig.notEmpty()) {
|
||||
driverConfig = Chat2DBContext.getDefaultDriverConfig(param.getType());
|
||||
}
|
||||
DataSourceConnect dataSourceConnect = JdbcUtils.testConnect(testParam.getUrl(), testParam.getHost(),
|
||||
testParam.getPort(),
|
||||
testParam.getUsername(), testParam.getPassword(), testParam.getDbType(),
|
||||
driverConfig, param.getSsh(), KeyValue.toMap(param.getExtendInfo()));
|
||||
testParam.getPort(),
|
||||
testParam.getUsername(), testParam.getPassword(), testParam.getDbType(),
|
||||
driverConfig, param.getSsh(), KeyValue.toMap(param.getExtendInfo()));
|
||||
if (BooleanUtils.isNotTrue(dataSourceConnect.getSuccess())) {
|
||||
return ActionResult.fail(dataSourceConnect.getMessage(), dataSourceConnect.getDescription(), dataSourceConnect.getErrorDetail());
|
||||
return ActionResult.fail(dataSourceConnect.getMessage(), dataSourceConnect.getDescription(),
|
||||
dataSourceConnect.getErrorDetail());
|
||||
}
|
||||
return ActionResult.isSuccess();
|
||||
}
|
||||
|
@ -7,6 +7,7 @@ import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||
import ai.chat2db.server.tools.common.exception.ParamBusinessException;
|
||||
import ai.chat2db.server.web.api.controller.data.source.request.DataSourceBaseRequestInfo;
|
||||
import ai.chat2db.server.web.api.controller.data.source.request.DataSourceConsoleRequestInfo;
|
||||
import ai.chat2db.spi.config.DriverConfig;
|
||||
import ai.chat2db.spi.sql.Chat2DBContext;
|
||||
import ai.chat2db.spi.sql.ConnectInfo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -28,7 +29,6 @@ public class ConnectionInfoHandler {
|
||||
@Autowired
|
||||
private DataSourceService dataSourceService;
|
||||
|
||||
|
||||
@Around("within(@ai.chat2db.server.web.api.aspect.ConnectionInfoAspect *)")
|
||||
public Object connectionInfoHandler(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
|
||||
try {
|
||||
@ -78,6 +78,10 @@ public class ConnectionInfoHandler {
|
||||
connectInfo.setUrl(dataSource.getUrl());
|
||||
connectInfo.setPort(dataSource.getPort() != null ? Integer.parseInt(dataSource.getPort()) : null);
|
||||
connectInfo.setHost(dataSource.getHost());
|
||||
DriverConfig driverConfig = dataSource.getDriverConfig();
|
||||
if (driverConfig != null && driverConfig.notEmpty()) {
|
||||
connectInfo.setDriverConfig(driverConfig);
|
||||
}
|
||||
return connectInfo;
|
||||
}
|
||||
|
||||
|
@ -4,6 +4,7 @@ package ai.chat2db.spi.config;
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
/**
|
||||
* @author jipengfei
|
||||
@ -38,4 +39,10 @@ public class DriverConfig {
|
||||
* 自定义
|
||||
*/
|
||||
private boolean custom;
|
||||
|
||||
|
||||
public boolean notEmpty() {
|
||||
return StringUtils.isNotBlank(getJdbcDriver()) && StringUtils.isNotBlank(
|
||||
getJdbcDriverClass());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user