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 942090520..06760b6d0 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 @@ -29,10 +29,24 @@ private String setDatabaseInJdbcUrl(ConnectInfo connectInfo) { String connectAddress = connectInfo.getHost() + ":" + connectInfo.getPort(); String[] addressSplit = url.split(connectAddress); - String connectParams = addressSplit[1]; + String connectParams = addressSplit.length == 2 ? addressSplit[1] : ""; if (connectParams.startsWith("/")) { // 删除连接参数中的 / connectParams = connectParams.substring(1); + if (connectParams.startsWith(databaseName)) { + // 删除连接参数中的数据库名 + connectParams = connectParams.substring(databaseName.length()); + } else { + // 是否有连接参数 + int beginIndex = connectParams.indexOf("?"); + // 无连接参数直接设置 "" + if (beginIndex == -1) { + connectParams = ""; + } else { + // 删除连接参数前的数据库名 + connectParams = connectParams.substring(beginIndex); + } + } } // 添加数据库名 return addressSplit[0] + connectAddress + "/" + databaseName + connectParams;