Skip to content

Commit 2949c38

Browse files
feat: fill common databases default connect value
1 parent a16979a commit 2949c38

File tree

3 files changed

+142
-90
lines changed

3 files changed

+142
-90
lines changed

data-providers/jdbc-data-provider/src/main/java/datart/data/provider/JdbcDataProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ private static List<JdbcDriverInfo> loadDriverInfoFromResource() {
299299
log.error("DbType " + entry.getKey() + " driver read Exception", e);
300300
}
301301
return null;
302-
}).filter(Objects::nonNull).collect(Collectors.toList());
302+
}).filter(Objects::nonNull).sorted(Comparator.comparing(JdbcDriverInfo::getDbType)).collect(Collectors.toList());
303303
}
304304

305305
private static Map<String, Map<String, String>> loadYml(String file) {
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package datart.data.provider.jdbc.adapters;
2+
3+
import org.apache.commons.lang3.StringUtils;
4+
5+
import java.sql.Connection;
6+
import java.sql.DatabaseMetaData;
7+
import java.sql.ResultSet;
8+
import java.sql.SQLException;
9+
import java.util.HashSet;
10+
import java.util.Set;
11+
12+
public class MsSqlDataProviderAdapter extends JdbcDataProviderAdapter {
13+
14+
@Override
15+
public Set<String> readAllDatabases() throws SQLException {
16+
String databaseName = StringUtils.substringAfterLast(jdbcProperties.getUrl().toLowerCase(), "databasename=");
17+
databaseName = StringUtils.substringBefore(databaseName, ";");
18+
if (StringUtils.isBlank(databaseName)) {
19+
Set<String> catalogs = new HashSet<>();
20+
try (Connection conn = getConn()) {
21+
DatabaseMetaData metadata = conn.getMetaData();
22+
try (ResultSet rs = metadata.getCatalogs()) {
23+
while (rs.next()) {
24+
String catalogName = rs.getString(1);
25+
catalogs.add(catalogName);
26+
}
27+
}
28+
return catalogs;
29+
}
30+
}
31+
return super.readAllDatabases();
32+
}
33+
34+
}
Lines changed: 107 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,129 +1,166 @@
11
ACCESS:
22
db-type: ACCESS
33
name: ACCESS
4-
driver-class:
5-
url-prefix:
4+
driver-class: net.ucanaccess.jdbc.UcanaccessDriver
5+
url-prefix: jdbc:ucanaccess://
66

77
BIG_QUERY:
88
db-type: BIG_QUERY
99
name: BIG_QUERY
10-
driver-class:
11-
url-prefix:
10+
driver-class: com.simba.googlebigquery.jdbc.Driver
11+
url-prefix: jdbc:bigquery://
1212

1313
CALCITE:
1414
db-type: CALCITE
1515
name: CALCITE
16-
driver-class:
17-
url-prefix:
16+
driver-class: org.apache.calcite.avatica.remote.Driver
17+
url-prefix: jdbc:avatica:remote
1818

1919
CLICKHOUSE:
2020
db-type: CLICKHOUSE
2121
name: CLICKHOUSE
22-
driver-class:
23-
url-prefix:
22+
driver-class: com.clickhouse.jdbc.ClickHouseDriver
23+
url-prefix: jdbc:clickhouse://
2424
sql-dialect: datart.data.provider.calcite.dialect.ClickHouseSqlDialectSupport
2525

26-
MSSQL:
27-
db-type: MSSQL
28-
name: MSSQL
29-
sql-dialect: datart.data.provider.calcite.dialect.MsSqlStdOperatorSupport
30-
driver-class: com.microsoft.sqlserver.jdbc.SQLServerDriver
31-
url-prefix: jdbc:sqlserver://
32-
33-
MYSQL:
34-
db-type: MYSQL
35-
name: MYSQL
36-
driver-class: com.mysql.cj.jdbc.Driver
37-
url-prefix: jdbc:mysql://
38-
sql-dialect: datart.data.provider.calcite.dialect.MysqlSqlStdOperatorSupport
39-
40-
ORACLE:
41-
db-type: ORACLE
42-
name: ORACLE
43-
driver-class: oracle.jdbc.driver.OracleDriver
44-
adapter-class: datart.data.provider.jdbc.adapters.OracleDataProviderAdapter
45-
url-prefix: jdbc:oracle:thin:@
46-
sql-dialect: datart.data.provider.calcite.dialect.OracleSqlStdOperatorSupport
47-
4826
DERBY:
4927
db-type: DERBY
5028
name: DERBY
51-
driver-class:
52-
url-prefix:
29+
driver-class: org.apache.derby.client.ClientAutoloadedDriver
30+
url-prefix: jdbc:derby://
5331

5432
DB2:
5533
db-type: DB2
5634
name: DB2
57-
driver-class: com.ibm.db2.jdbc.app.DB2Driver
35+
driver-class: com.ibm.db2.jdbc.jcc.DB2Driver
5836
url-prefix: jdbc:db2://
5937

6038
FIREBIRD:
6139
db-type: FIREBIRD
6240
name: FIREBIRD
63-
driver-class:
64-
url-prefix:
41+
driver-class: org.firebirdsql.jdbc.FBDriver
42+
url-prefix: jdbc:firebirdsql://
43+
6544
H2:
6645
db-type: H2
6746
name: H2
6847
driver-class: org.h2.Driver
6948
url-prefix: jdbc:h2
7049
sql-dialect: datart.data.provider.calcite.dialect.H2Dialect
50+
7151
HIVE:
7252
db-type: HIVE
7353
name: HIVE
74-
driver-class:
75-
url-prefix:
54+
driver-class: org.apache.hive.jdbc.HiveDriver
55+
url-prefix: jdbc:hive2://
56+
57+
HSQLDB:
58+
db-type: HSQLDB
59+
name: HSQLDB
60+
driver-class: org.hsqldb.jdbcDriver
61+
url-prefix: jdbc:hsqldb
62+
63+
INFOBRIGHT:
64+
db-type: INFOBRIGHT
65+
name: INFOBRIGHT
66+
driver-class: com.mysql.cj.jdbc.Driver
67+
url-prefix: jdbc:mysql://
68+
7669
INFORMIX:
7770
db-type: INFORMIX
7871
name: INFORMIX
7972
driver-class: com.informix.jdbc.IfxDriver
8073
url-prefix: jdbc:informix-sqli://
74+
8175
INGRES:
8276
db-type: INGRES
8377
name: INGRES
84-
driver-class:
85-
url-prefix:
78+
driver-class: com.ingres.jdbc.IngresDriver
79+
url-prefix: jdbc:ingres://
80+
81+
INTERBASE:
82+
db-type: INTERBASE
83+
name: INTERBASE
84+
driver-class: interbase.interclient.Driver
85+
url-prefix: jdbc:interbase://
86+
8687
JETHRO:
8788
db-type: JETHRO
8889
name: JETHRO
89-
driver-class:
90-
url-prefix:
90+
driver-class: com.jethrodata.JethroDriver
91+
url-prefix: jdbc:JethroData://
92+
9193
LUCIDDB:
9294
db-type: LUCIDDB
9395
name: LUCIDDB
94-
driver-class:
95-
url-prefix:
96-
INTERBASE:
97-
db-type: INTERBASE
98-
name: INTERBASE
99-
driver-class:
100-
url-prefix:
96+
driver-class: org.luciddb.jdbc.LucidDbClientDriver
97+
url-prefix: jdbc:luciddb
98+
99+
MSSQL:
100+
db-type: MSSQL
101+
name: MSSQL
102+
sql-dialect: datart.data.provider.calcite.dialect.MsSqlStdOperatorSupport
103+
adapter-class: datart.data.provider.jdbc.adapters.MsSqlDataProviderAdapter
104+
driver-class: com.microsoft.sqlserver.jdbc.SQLServerDriver
105+
url-prefix: jdbc:sqlserver://
106+
107+
MYSQL:
108+
db-type: MYSQL
109+
name: MYSQL
110+
driver-class: com.mysql.cj.jdbc.Driver
111+
url-prefix: jdbc:mysql://
112+
sql-dialect: datart.data.provider.calcite.dialect.MysqlSqlStdOperatorSupport
113+
114+
NEOVIEW:
115+
db-type: NEOVIEW
116+
name: NEOVIEW
117+
driver-class: com.hp.t4jdbc.HPT4Driver
118+
url-prefix: jdbc:hpt4jdbc://
119+
120+
NETEZZA:
121+
db-type: NETEZZA
122+
name: NETEZZA
123+
driver-class: org.netezza.Driver
124+
url-prefix: jdbc:netezza://
125+
126+
ORACLE:
127+
db-type: ORACLE
128+
name: ORACLE
129+
driver-class: oracle.jdbc.driver.OracleDriver
130+
adapter-class: datart.data.provider.jdbc.adapters.OracleDataProviderAdapter
131+
url-prefix: jdbc:oracle:thin:@
132+
sql-dialect: datart.data.provider.calcite.dialect.OracleSqlStdOperatorSupport
133+
101134
PHOENIX:
102135
db-type: PHOENIX
103136
name: PHOENIX
104-
driver-class:
105-
url-prefix:
137+
driver-class: org.apache.phoenix.jdbc.PhoenixDriver
138+
url-prefix: jdbc:phoenix
139+
140+
POSTGRESQL:
141+
db-type: POSTGRESQL
142+
name: POSTGRESQL
143+
driver-class: org.postgresql.Driver
144+
url-prefix: jdbc:postgresql://
145+
106146
PRESTO:
107147
db-type: PRESTO
108148
name: PRESTO
109149
driver-class: io.prestosql.jdbc.PrestoDriver
110150
url-prefix: jdbc:presto://
111151

112-
NETEZZA:
113-
db-type: NETEZZA
114-
name: NETEZZA
115-
driver-class:
116-
url-prefix:
117-
INFOBRIGHT:
118-
db-type: INFOBRIGHT
119-
name: INFOBRIGHT
120-
driver-class:
121-
url-prefix:
122-
NEOVIEW:
123-
db-type: NEOVIEW
124-
name: NEOVIEW
125-
driver-class:
126-
url-prefix:
152+
SPARK:
153+
db-type: SPARK
154+
name: SPARK
155+
driver-class: org.apache.hive.jdbc.HiveDriver
156+
url-prefix: jdbc:hive2://
157+
158+
SQLSTREAM:
159+
db-type: SQLSTREAM
160+
name: SQLSTREAM
161+
driver-class: com.sqlstream.jdbc.Driver
162+
url-prefix: jdbc:sqlstream://
163+
127164
SYBASE:
128165
db-type: SYBASE
129166
name: SYBASE
@@ -133,32 +170,13 @@ SYBASE:
133170
TERADATA:
134171
db-type: TERADATA
135172
name: TERADATA
136-
driver-class:
137-
url-prefix:
138-
HSQLDB:
139-
db-type: HSQLDB
140-
name: HSQLDB
141-
driver-class:
142-
url-prefix:
173+
driver-class: com.teradata.jdbc.TeraDriver
174+
url-prefix: jdbc:teradata://
175+
143176
VERTICA:
144177
db-type: VERTICA
145178
name: VERTICA
146-
driver-class:
147-
url-prefix:
148-
SQLSTREAM:
149-
db-type: SQLSTREAM
150-
name: SQLSTREAM
151-
driver-class:
152-
url-prefix:
153-
SPARK:
154-
db-type: SPARK
155-
name: SPARK
156-
driver-class:
157-
url-prefix:
179+
driver-class: com.vertica.jdbc.Driver
180+
url-prefix: jdbc:vertica://
158181

159-
POSTGRESQL:
160-
db-type: POSTGRESQL
161-
name: POSTGRESQL
162-
driver-class: org.postgresql.Driver
163-
url-prefix: jdbc:postgresql://
164182

0 commit comments

Comments
 (0)