Skip to content

Commit 17b1edc

Browse files
authored
Merge pull request #663 from 1194570458/dev
修复clickhouse无法选中数据库问题
2 parents 961d158 + b89a405 commit 17b1edc

File tree

3 files changed

+37
-2
lines changed
  • chat2db-server

3 files changed

+37
-2
lines changed

chat2db-server/chat2db-plugins/chat2db-clickhouse/src/main/java/ai/chat2db/plugin/clickhouse/ClickHouseDBManage.java

+29
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,39 @@
44

55
import ai.chat2db.spi.DBManage;
66
import ai.chat2db.spi.jdbc.DefaultDBManage;
7+
import ai.chat2db.spi.sql.ConnectInfo;
78
import ai.chat2db.spi.sql.SQLExecutor;
9+
import org.apache.commons.lang3.StringUtils;
10+
11+
import javax.net.ssl.HostnameVerifier;
812

913
public class ClickHouseDBManage extends DefaultDBManage implements DBManage {
1014

15+
@Override
16+
public Connection getConnection(ConnectInfo connectInfo) {
17+
String url = setDatabaseInJdbcUrl(connectInfo);
18+
connectInfo.setUrl(url);
19+
20+
return super.getConnection(connectInfo);
21+
}
22+
23+
private String setDatabaseInJdbcUrl(ConnectInfo connectInfo) {
24+
String databaseName;
25+
String url = connectInfo.getUrl();
26+
if (StringUtils.isBlank((databaseName = connectInfo.getDatabaseName())) && StringUtils.isBlank((databaseName = connectInfo.getSchemaName()))) {
27+
return url;
28+
}
29+
30+
String connectAddress = connectInfo.getHost() + ":" + connectInfo.getPort();
31+
String[] addressSplit = url.split(connectAddress);
32+
String connectParams = addressSplit[1];
33+
if (connectParams.startsWith("/")) {
34+
// 删除连接参数中的 /
35+
connectParams = connectParams.substring(1);
36+
}
37+
// 添加数据库名
38+
return addressSplit[0] + connectAddress + "/" + databaseName + connectParams;
39+
}
1140

1241
@Override
1342
public void dropTable(Connection connection, String databaseName, String schemaName, String tableName) {

chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource/DataSourceUpdateParam.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,10 @@ public class DataSourceUpdateParam {
5353
*/
5454
private String envType;
5555

56-
56+
/**
57+
* 环境id
58+
*/
59+
private Integer environmentId;
5760

5861
/**
5962
* host

chat2db-server/chat2db-server-web/chat2db-server-web-api/src/main/java/ai/chat2db/server/web/api/controller/data/source/request/DataSourceUpdateRequest.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,10 @@ public class DataSourceUpdateRequest {
5656
*/
5757
private String envType;
5858

59-
59+
/**
60+
* 环境id
61+
*/
62+
private Integer environmentId;
6063

6164
/**
6265
* host

0 commit comments

Comments
 (0)