diff --git a/chat2db-server/chat2db-plugins/chat2db-clickhouse/src/main/java/ai/chat2db/plugin/clickhouse/ClickHouseDBManage.java b/chat2db-server/chat2db-plugins/chat2db-clickhouse/src/main/java/ai/chat2db/plugin/clickhouse/ClickHouseDBManage.java index 57bdcff9..94209052 100644 --- a/chat2db-server/chat2db-plugins/chat2db-clickhouse/src/main/java/ai/chat2db/plugin/clickhouse/ClickHouseDBManage.java +++ b/chat2db-server/chat2db-plugins/chat2db-clickhouse/src/main/java/ai/chat2db/plugin/clickhouse/ClickHouseDBManage.java @@ -4,10 +4,39 @@ import java.sql.Connection; import ai.chat2db.spi.DBManage; import ai.chat2db.spi.jdbc.DefaultDBManage; +import ai.chat2db.spi.sql.ConnectInfo; import ai.chat2db.spi.sql.SQLExecutor; +import org.apache.commons.lang3.StringUtils; + +import javax.net.ssl.HostnameVerifier; public class ClickHouseDBManage extends DefaultDBManage implements DBManage { + @Override + public Connection getConnection(ConnectInfo connectInfo) { + String url = setDatabaseInJdbcUrl(connectInfo); + connectInfo.setUrl(url); + + return super.getConnection(connectInfo); + } + + private String setDatabaseInJdbcUrl(ConnectInfo connectInfo) { + String databaseName; + String url = connectInfo.getUrl(); + if (StringUtils.isBlank((databaseName = connectInfo.getDatabaseName())) && StringUtils.isBlank((databaseName = connectInfo.getSchemaName()))) { + return url; + } + + String connectAddress = connectInfo.getHost() + ":" + connectInfo.getPort(); + String[] addressSplit = url.split(connectAddress); + String connectParams = addressSplit[1]; + if (connectParams.startsWith("/")) { + // 删除连接参数中的 / + connectParams = connectParams.substring(1); + } + // 添加数据库名 + return addressSplit[0] + connectAddress + "/" + databaseName + connectParams; + } @Override public void dropTable(Connection connection, String databaseName, String schemaName, String tableName) { diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource/DataSourceUpdateParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource/DataSourceUpdateParam.java index f565df8d..41558288 100644 --- a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource/DataSourceUpdateParam.java +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource/DataSourceUpdateParam.java @@ -53,7 +53,10 @@ public class DataSourceUpdateParam { */ private String envType; - + /** + * 环境id + */ + private Integer environmentId; /** * host diff --git a/chat2db-server/chat2db-server-web/chat2db-server-web-api/src/main/java/ai/chat2db/server/web/api/controller/data/source/request/DataSourceUpdateRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-web-api/src/main/java/ai/chat2db/server/web/api/controller/data/source/request/DataSourceUpdateRequest.java index dbc567ad..57a7e425 100644 --- a/chat2db-server/chat2db-server-web/chat2db-server-web-api/src/main/java/ai/chat2db/server/web/api/controller/data/source/request/DataSourceUpdateRequest.java +++ b/chat2db-server/chat2db-server-web/chat2db-server-web-api/src/main/java/ai/chat2db/server/web/api/controller/data/source/request/DataSourceUpdateRequest.java @@ -56,7 +56,10 @@ public class DataSourceUpdateRequest { */ private String envType; - + /** + * 环境id + */ + private Integer environmentId; /** * host