|
|
@@ -0,0 +1,132 @@
|
|
|
+package mybatisex.core.db;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author wenshao [szujobs@hotmail.com]
|
|
|
+ */
|
|
|
+public final class JdbcUtils implements JdbcConstants {
|
|
|
+ public static String getDbType(String rawUrl, String driverClassName) {
|
|
|
+ DbType dbType = getDbTypeRaw(rawUrl, driverClassName);
|
|
|
+
|
|
|
+ if (dbType == null) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ return dbType.name();
|
|
|
+ }
|
|
|
+
|
|
|
+ public static DbType getDbTypeRaw(String rawUrl, String driverClassName) {
|
|
|
+ if (rawUrl == null) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (rawUrl.startsWith("jdbc:derby:") || rawUrl.startsWith("jdbc:log4jdbc:derby:")) {
|
|
|
+ return DbType.derby;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:mysql:") || rawUrl.startsWith("jdbc:cobar:")
|
|
|
+ || rawUrl.startsWith("jdbc:log4jdbc:mysql:")) {
|
|
|
+ return DbType.mysql;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:mariadb:")) {
|
|
|
+ return DbType.mariadb;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:tidb:")) {
|
|
|
+ return DbType.tidb;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:oracle:") || rawUrl.startsWith("jdbc:log4jdbc:oracle:")) {
|
|
|
+ return DbType.oracle;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:alibaba:oracle:")) {
|
|
|
+ return DbType.ali_oracle;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:oceanbase:oracle:")) {
|
|
|
+ return DbType.oceanbase_oracle;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:oceanbase:")) {
|
|
|
+ return DbType.oceanbase;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:microsoft:") || rawUrl.startsWith("jdbc:log4jdbc:microsoft:")) {
|
|
|
+ return DbType.sqlserver;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:sqlserver:") || rawUrl.startsWith("jdbc:log4jdbc:sqlserver:")) {
|
|
|
+ return DbType.sqlserver;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:sybase:Tds:") || rawUrl.startsWith("jdbc:log4jdbc:sybase:")) {
|
|
|
+ return DbType.sybase;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:jtds:") || rawUrl.startsWith("jdbc:log4jdbc:jtds:")) {
|
|
|
+ return DbType.jtds;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:fake:") || rawUrl.startsWith("jdbc:mock:")) {
|
|
|
+ return DbType.mock;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:postgresql:") || rawUrl.startsWith("jdbc:log4jdbc:postgresql:")) {
|
|
|
+ return DbType.postgresql;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:edb:")) {
|
|
|
+ return DbType.edb;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:hsqldb:") || rawUrl.startsWith("jdbc:log4jdbc:hsqldb:")) {
|
|
|
+ return DbType.hsql;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:odps:")) {
|
|
|
+ return DbType.odps;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:db2:")) {
|
|
|
+ return DbType.db2;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:sqlite:")) {
|
|
|
+ return DbType.sqlite;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:ingres:")) {
|
|
|
+ return DbType.ingres;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:h2:") || rawUrl.startsWith("jdbc:log4jdbc:h2:")) {
|
|
|
+ return DbType.h2;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:mckoi:")) {
|
|
|
+ return DbType.mock;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:cloudscape:")) {
|
|
|
+ return DbType.cloudscape;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:informix-sqli:") || rawUrl.startsWith("jdbc:log4jdbc:informix-sqli:")) {
|
|
|
+ return DbType.informix;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:timesten:")) {
|
|
|
+ return DbType.timesten;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:as400:")) {
|
|
|
+ return DbType.as400;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:sapdb:")) {
|
|
|
+ return DbType.sapdb;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:JSQLConnect:")) {
|
|
|
+ return DbType.JSQLConnect;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:JTurbo:")) {
|
|
|
+ return DbType.JTurbo;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:firebirdsql:")) {
|
|
|
+ return DbType.firebirdsql;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:interbase:")) {
|
|
|
+ return DbType.interbase;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:pointbase:")) {
|
|
|
+ return DbType.pointbase;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:edbc:")) {
|
|
|
+ return DbType.edbc;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:mimer:multi1:")) {
|
|
|
+ return DbType.mimer;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:dm:")) {
|
|
|
+ return JdbcConstants.DM;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:kingbase:") || rawUrl.startsWith("jdbc:kingbase8:")) {
|
|
|
+ return JdbcConstants.KINGBASE;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:gbase:")) {
|
|
|
+ return JdbcConstants.GBASE;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:xugu:")) {
|
|
|
+ return JdbcConstants.XUGU;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:log4jdbc:")) {
|
|
|
+ return DbType.log4jdbc;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:hive:")) {
|
|
|
+ return DbType.hive;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:hive2:")) {
|
|
|
+ return DbType.hive;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:phoenix:")) {
|
|
|
+ return DbType.phoenix;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:kylin:")) {
|
|
|
+ return DbType.kylin;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:elastic:")) {
|
|
|
+ return DbType.elastic_search;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:clickhouse:")) {
|
|
|
+ return DbType.clickhouse;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:presto:")) {
|
|
|
+ return DbType.presto;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:trino:")) {
|
|
|
+ return DbType.trino;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:inspur:")) {
|
|
|
+ return DbType.kdb;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:polardb")) {
|
|
|
+ return DbType.polardb;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:highgo:")) {
|
|
|
+ return DbType.highgo;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:pivotal:greenplum:") || rawUrl.startsWith("jdbc:datadirect:greenplum:")) {
|
|
|
+ return DbType.greenplum;
|
|
|
+ } else if (rawUrl.startsWith("jdbc:opengauss:") || rawUrl.startsWith("jdbc:gaussdb:")
|
|
|
+ || rawUrl.startsWith("jdbc:dws:iam:")) {
|
|
|
+ return DbType.gaussdb;
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|