提交 e8e8a9c3 authored 作者: junjie's avatar junjie

feat(backend):jdbc add doris

上级 83fa0950
...@@ -20,6 +20,7 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -20,6 +20,7 @@ public class JdbcProvider extends DatasourceProvider {
private static Map<String, ComboPooledDataSource> jdbcConnection = new HashMap<>(); private static Map<String, ComboPooledDataSource> jdbcConnection = new HashMap<>();
private static int initPoolSize = 5; private static int initPoolSize = 5;
private static int maxConnections = 200; private static int maxConnections = 200;
@Override @Override
public List<String[]> getData(DatasourceRequest datasourceRequest) throws Exception { public List<String[]> getData(DatasourceRequest datasourceRequest) throws Exception {
List<String[]> list = new LinkedList<>(); List<String[]> list = new LinkedList<>();
...@@ -33,7 +34,7 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -33,7 +34,7 @@ public class JdbcProvider extends DatasourceProvider {
throw new Exception("ERROR:" + e.getMessage(), e); throw new Exception("ERROR:" + e.getMessage(), e);
} catch (Exception e) { } catch (Exception e) {
throw new Exception("ERROR:" + e.getMessage(), e); throw new Exception("ERROR:" + e.getMessage(), e);
}finally { } finally {
connection.close(); connection.close();
} }
return list; return list;
...@@ -50,7 +51,7 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -50,7 +51,7 @@ public class JdbcProvider extends DatasourceProvider {
throw new Exception("ERROR:" + e.getMessage(), e); throw new Exception("ERROR:" + e.getMessage(), e);
} catch (Exception e) { } catch (Exception e) {
throw new Exception("ERROR:" + e.getMessage(), e); throw new Exception("ERROR:" + e.getMessage(), e);
}finally { } finally {
connection.close(); connection.close();
} }
} }
...@@ -68,7 +69,7 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -68,7 +69,7 @@ public class JdbcProvider extends DatasourceProvider {
throw new Exception("ERROR:" + e.getMessage(), e); throw new Exception("ERROR:" + e.getMessage(), e);
} catch (Exception e) { } catch (Exception e) {
throw new Exception("ERROR:" + e.getMessage(), e); throw new Exception("ERROR:" + e.getMessage(), e);
}finally { } finally {
connection.close(); connection.close();
} }
} }
...@@ -108,7 +109,7 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -108,7 +109,7 @@ public class JdbcProvider extends DatasourceProvider {
throw new Exception("ERROR:" + e.getMessage(), e); throw new Exception("ERROR:" + e.getMessage(), e);
} catch (Exception e) { } catch (Exception e) {
throw new Exception("ERROR:" + e.getMessage(), e); throw new Exception("ERROR:" + e.getMessage(), e);
}finally { } finally {
connection.close(); connection.close();
} }
} }
...@@ -133,7 +134,7 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -133,7 +134,7 @@ public class JdbcProvider extends DatasourceProvider {
throw new Exception("ERROR:" + e.getMessage(), e); throw new Exception("ERROR:" + e.getMessage(), e);
} catch (Exception e) { } catch (Exception e) {
throw new Exception("ERROR:" + e.getMessage(), e); throw new Exception("ERROR:" + e.getMessage(), e);
}finally { } finally {
connection.close(); connection.close();
} }
} }
...@@ -173,7 +174,7 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -173,7 +174,7 @@ public class JdbcProvider extends DatasourceProvider {
return tables; return tables;
} catch (Exception e) { } catch (Exception e) {
throw new Exception("ERROR: " + e.getMessage(), e); throw new Exception("ERROR: " + e.getMessage(), e);
}finally { } finally {
con.close(); con.close();
} }
} }
...@@ -209,7 +210,7 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -209,7 +210,7 @@ public class JdbcProvider extends DatasourceProvider {
throw new Exception("ERROR:" + e.getMessage(), e); throw new Exception("ERROR:" + e.getMessage(), e);
} catch (Exception e) { } catch (Exception e) {
throw new Exception("ERROR:" + e.getMessage(), e); throw new Exception("ERROR:" + e.getMessage(), e);
}finally { } finally {
connection.close(); connection.close();
} }
return list; return list;
...@@ -227,7 +228,7 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -227,7 +228,7 @@ public class JdbcProvider extends DatasourceProvider {
ps.close(); ps.close();
} catch (Exception e) { } catch (Exception e) {
throw new Exception("ERROR: " + e.getMessage(), e); throw new Exception("ERROR: " + e.getMessage(), e);
}finally { } finally {
con.close(); con.close();
} }
} }
...@@ -236,20 +237,21 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -236,20 +237,21 @@ public class JdbcProvider extends DatasourceProvider {
public Long count(DatasourceRequest datasourceRequest) throws Exception { public Long count(DatasourceRequest datasourceRequest) throws Exception {
Connection con = null; Connection con = null;
try { try {
con = getConnectionFromPool(datasourceRequest); Statement ps = con.createStatement(); con = getConnectionFromPool(datasourceRequest);
Statement ps = con.createStatement();
ResultSet resultSet = ps.executeQuery(datasourceRequest.getQuery()); ResultSet resultSet = ps.executeQuery(datasourceRequest.getQuery());
while (resultSet.next()) { while (resultSet.next()) {
return resultSet.getLong(1); return resultSet.getLong(1);
} }
} catch (Exception e) { } catch (Exception e) {
throw new Exception("ERROR: " + e.getMessage(), e); throw new Exception("ERROR: " + e.getMessage(), e);
}finally { } finally {
con.close(); con.close();
} }
return 0L; return 0L;
} }
private Connection getConnectionFromPool(DatasourceRequest datasourceRequest)throws Exception { private Connection getConnectionFromPool(DatasourceRequest datasourceRequest) throws Exception {
ComboPooledDataSource dataSource = jdbcConnection.get(datasourceRequest.getDatasource().getId()); ComboPooledDataSource dataSource = jdbcConnection.get(datasourceRequest.getDatasource().getId());
if (dataSource == null) { if (dataSource == null) {
initDataSource(datasourceRequest); initDataSource(datasourceRequest);
...@@ -260,7 +262,7 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -260,7 +262,7 @@ public class JdbcProvider extends DatasourceProvider {
} }
@Override @Override
public void initDataSource(DatasourceRequest datasourceRequest)throws Exception{ public void initDataSource(DatasourceRequest datasourceRequest) throws Exception {
ComboPooledDataSource dataSource = jdbcConnection.get(datasourceRequest.getDatasource().getId()); ComboPooledDataSource dataSource = jdbcConnection.get(datasourceRequest.getDatasource().getId());
if (dataSource == null) { if (dataSource == null) {
dataSource = new ComboPooledDataSource(); dataSource = new ComboPooledDataSource();
...@@ -298,6 +300,13 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -298,6 +300,13 @@ public class JdbcProvider extends DatasourceProvider {
driver = mysqlConfigration.getDriver(); driver = mysqlConfigration.getDriver();
jdbcurl = mysqlConfigration.getJdbc(); jdbcurl = mysqlConfigration.getJdbc();
break; break;
case doris:
MysqlConfigration dorisConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), MysqlConfigration.class);
username = dorisConfigration.getUsername();
password = dorisConfigration.getPassword();
driver = dorisConfigration.getDriver();
jdbcurl = dorisConfigration.getJdbc();
break;
case sqlServer: case sqlServer:
SqlServerConfigration sqlServerConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), SqlServerConfigration.class); SqlServerConfigration sqlServerConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), SqlServerConfigration.class);
username = sqlServerConfigration.getUsername(); username = sqlServerConfigration.getUsername();
...@@ -319,26 +328,33 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -319,26 +328,33 @@ public class JdbcProvider extends DatasourceProvider {
} }
private void setCredential(DatasourceRequest datasourceRequest, ComboPooledDataSource dataSource) throws PropertyVetoException { private void setCredential(DatasourceRequest datasourceRequest, ComboPooledDataSource dataSource) throws PropertyVetoException {
DatasourceTypes datasourceType = DatasourceTypes.valueOf(datasourceRequest.getDatasource().getType()); DatasourceTypes datasourceType = DatasourceTypes.valueOf(datasourceRequest.getDatasource().getType());
switch (datasourceType) { switch (datasourceType) {
case mysql: case mysql:
MysqlConfigration mysqlConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), MysqlConfigration.class); MysqlConfigration mysqlConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), MysqlConfigration.class);
dataSource.setUser(mysqlConfigration.getUsername()); dataSource.setUser(mysqlConfigration.getUsername());
dataSource.setDriverClass(mysqlConfigration.getDriver()); dataSource.setDriverClass(mysqlConfigration.getDriver());
dataSource.setPassword(mysqlConfigration.getPassword()); dataSource.setPassword(mysqlConfigration.getPassword());
dataSource.setJdbcUrl(mysqlConfigration.getJdbc()); dataSource.setJdbcUrl(mysqlConfigration.getJdbc());
break; break;
case sqlServer: case doris:
SqlServerConfigration sqlServerConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), SqlServerConfigration.class); MysqlConfigration dorisConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), MysqlConfigration.class);
dataSource.setUser(sqlServerConfigration.getUsername()); dataSource.setUser(dorisConfigration.getUsername());
dataSource.setDriverClass(sqlServerConfigration.getDriver()); dataSource.setDriverClass(dorisConfigration.getDriver());
dataSource.setPassword(sqlServerConfigration.getPassword()); dataSource.setPassword(dorisConfigration.getPassword());
dataSource.setJdbcUrl(sqlServerConfigration.getJdbc()); dataSource.setJdbcUrl(dorisConfigration.getJdbc());
break; break;
default: case sqlServer:
break; SqlServerConfigration sqlServerConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), SqlServerConfigration.class);
} dataSource.setUser(sqlServerConfigration.getUsername());
dataSource.setDriverClass(sqlServerConfigration.getDriver());
dataSource.setPassword(sqlServerConfigration.getPassword());
dataSource.setJdbcUrl(sqlServerConfigration.getJdbc());
break;
default:
break;
}
} }
private String getDatabase(DatasourceRequest datasourceRequest) { private String getDatabase(DatasourceRequest datasourceRequest) {
...@@ -347,6 +363,9 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -347,6 +363,9 @@ public class JdbcProvider extends DatasourceProvider {
case mysql: case mysql:
MysqlConfigration mysqlConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), MysqlConfigration.class); MysqlConfigration mysqlConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), MysqlConfigration.class);
return mysqlConfigration.getDataBase(); return mysqlConfigration.getDataBase();
case doris:
MysqlConfigration dorisConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), MysqlConfigration.class);
return dorisConfigration.getDataBase();
case sqlServer: case sqlServer:
SqlServerConfigration sqlServerConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), SqlServerConfigration.class); SqlServerConfigration sqlServerConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), SqlServerConfigration.class);
return sqlServerConfigration.getDataBase(); return sqlServerConfigration.getDataBase();
...@@ -360,6 +379,8 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -360,6 +379,8 @@ public class JdbcProvider extends DatasourceProvider {
switch (datasourceType) { switch (datasourceType) {
case mysql: case mysql:
return "show tables;"; return "show tables;";
case doris:
return "show tables;";
case sqlServer: case sqlServer:
return "SELECT TABLE_NAME FROM fit2cloud2.INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE';"; return "SELECT TABLE_NAME FROM fit2cloud2.INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE';";
default: default:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论