mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-07-30 19:22:58 +08:00
@ -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) {
|
||||
|
@ -53,7 +53,10 @@ public class DataSourceUpdateParam {
|
||||
*/
|
||||
private String envType;
|
||||
|
||||
|
||||
/**
|
||||
* 环境id
|
||||
*/
|
||||
private Integer environmentId;
|
||||
|
||||
/**
|
||||
* host
|
||||
|
@ -56,7 +56,10 @@ public class DataSourceUpdateRequest {
|
||||
*/
|
||||
private String envType;
|
||||
|
||||
|
||||
/**
|
||||
* 环境id
|
||||
*/
|
||||
private Integer environmentId;
|
||||
|
||||
/**
|
||||
* host
|
||||
|
Reference in New Issue
Block a user