private static final String MYSQL_JDBC_URL_PREFIX = "jdbc:mysql";
private static final String ORACLE_JDBC_URL_PREFIX = "jdbc:oracle";
private static final String H2_JDBC_URL_PREFIX = "jdbc:h2";
private static final String POSTGRESQL_JDBC_URL_PREFIX = "jdbc:postgresql";
private static final String MARIADB_JDBC_URL_PREFIX = "jdbc:mariadb";
private static final String MSSQL_JTDS_URL_PREFIX = "jdbc:jtds:sqlserver:";
private static final String MSSQL_JDBC_URL_PREFIX = "jdbc:sqlserver:";
private static final String KYLIN_JDBC_URK_PREFIX = "jdbc:kylin";
private static final String IMPALA_JDBC_URK_PREFIX = "jdbc:impala";
private static final String CLICKHOUSE_JDBC_URK_PREFIX = "jdbc:clickhouse";
public static ConnectionInfo parser(String url) {
ConnectionURLParser parser = null;
// jdbc url
String lowerCaseUrl = url.toLowerCase();
if (lowerCaseUrl.startsWith(MYSQL_JDBC_URL_PREFIX)) {
parser = new MysqlURLParser(url);
} else if (lowerCaseUrl.startsWith(ORACLE_JDBC_URL_PREFIX)) {
parser = new OracleURLParser(url);
} else if (lowerCaseUrl.startsWith(H2_JDBC_URL_PREFIX)) {
parser = new H2URLParser(url);
} else if (lowerCaseUrl.startsWith(POSTGRESQL_JDBC_URL_PREFIX)) {
parser = new PostgreSQLURLParser(url);
} else if (lowerCaseUrl.startsWith(MARIADB_JDBC_URL_PREFIX)) {
parser = new MariadbURLParser(url);
} else if (lowerCaseUrl.startsWith(MSSQL_JTDS_URL_PREFIX)) {
parser = new MssqlJtdsURLParser(url);
} else if (lowerCaseUrl.startsWith(MSSQL_JDBC_URL_PREFIX)) {
parser = new MssqlJdbcURLParser(url);
} else if (lowerCaseUrl.startsWith(KYLIN_JDBC_URK_PREFIX)) {
parser = new KylinJdbcURLParser(url);
} else if (lowerCaseUrl.startsWith(IMPALA_JDBC_URK_PREFIX)) {
parser = new ImpalaJdbcURLParser(url);
} else if (lowerCaseUrl.startsWith(CLICKHOUSE_JDBC_URK_PREFIX)) {
parser = new ClickHouseURLParser(url);
}
return parser.parse();
}
我目前是通过这种去识别数据库引擎的方式判断,但是mysql driver 能够连接上oceanbase。
想问下社区的各位老师有没有其他好的方法