diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbType.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbType.java index d946f3da..c76ee72d 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbType.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbType.java @@ -22,102 +22,127 @@ public enum DbType { * MYSQL */ MYSQL("mysql", "MySql 数据库"), + /** * MARIADB */ MARIADB("mariadb", "MariaDB 数据库"), + /** * ORACLE */ ORACLE("oracle", "Oracle11g 及以下数据库"), + /** * oracle12c */ ORACLE_12C("oracle12c", "Oracle12c 及以上数据库"), + /** * DB2 */ DB2("db2", "DB2 数据库"), + /** * H2 */ H2("h2", "H2 数据库"), + /** * HSQL */ HSQL("hsql", "HSQL 数据库"), + /** * SQLITE */ SQLITE("sqlite", "SQLite 数据库"), + /** * POSTGRE */ POSTGRE_SQL("postgresql", "PostgreSQL 数据库"), + /** * SQLSERVER */ SQLSERVER("sqlserver", "SQLServer 数据库"), + /** * SqlServer 2005 数据库 */ SQLSERVER_2005("sqlserver_2005", "SQLServer 数据库"), + /** * DM */ DM("dm", "达梦数据库"), + /** * xugu */ XUGU("xugu", "虚谷数据库"), + /** * Kingbase */ KINGBASE_ES("kingbasees", "人大金仓数据库"), + /** * Phoenix */ PHOENIX("phoenix", "Phoenix HBase 数据库"), + /** * Gauss */ GAUSS("gauss", "Gauss 数据库"), + /** * ClickHouse */ CLICK_HOUSE("clickhouse", "clickhouse 数据库"), + /** * GBase */ GBASE("gbase", "南大通用(华库)数据库"), + /** * GBase-8s */ GBASE_8S("gbase-8s", "南大通用数据库 GBase 8s"), + /** * Oscar */ OSCAR("oscar", "神通数据库"), + /** * Sybase */ SYBASE("sybase", "Sybase ASE 数据库"), + /** * OceanBase */ OCEAN_BASE("oceanbase", "OceanBase 数据库"), + /** * Firebird */ FIREBIRD("Firebird", "Firebird 数据库"), + /** * derby */ DERBY("derby", "Derby 数据库"), + /** * HighGo */ HIGH_GO("highgo", "瀚高数据库"), + /** * CUBRID */ @@ -127,50 +152,62 @@ public enum DbType { * GOLDILOCKS */ GOLDILOCKS("goldilocks", "GOLDILOCKS 数据库"), + /** * CSIIDB */ CSIIDB("csiidb", "CSIIDB 数据库"), + /** * CSIIDB */ SAP_HANA("hana", "SAP_HANA 数据库"), + /** * Impala */ IMPALA("impala", "impala 数据库"), + /** * Vertica */ VERTICA("vertica", "vertica数据库"), + /** * 东方国信 xcloud */ XCloud("xcloud", "行云数据库"), + /** * redshift */ REDSHIFT("redshift", "亚马逊 redshift 数据库"), + /** * openGauss */ OPENGAUSS("openGauss", "华为 openGauss 数据库"), + /** * TDengine */ TDENGINE("TDengine", "TDengine 数据库"), + /** * Informix */ INFORMIX("informix", "Informix 数据库"), + /** * sinodb */ SINODB("sinodb", "SinoDB 数据库"), + /** * uxdb */ UXDB("uxdb", "优炫数据库"), + /** * greenplum */ @@ -180,6 +217,17 @@ public enum DbType { * lealone */ LEALONE("lealone", "lealone 数据库"), + + /** + * Hive SQL + */ + HIVE("Hive", "Hive SQL"), + + /** + * Doris 兼容 Mysql,使用 MySql 驱动和协议 + */ + DORIS("doris", "doris 数据库"), + /** * UNKNOWN DB */ diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbTypeUtil.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbTypeUtil.java index 77add3a6..99c045f6 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbTypeUtil.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbTypeUtil.java @@ -169,7 +169,9 @@ public class DbTypeUtil { return DbType.GREENPLUM; } else if (jdbcUrl.contains(":lealone:")) { return DbType.LEALONE; - } else { + } else if (jdbcUrl.contains(":hive2:")) { + return DbType.HIVE; + } else { return DbType.OTHER; } } diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DialectFactory.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DialectFactory.java index c83edd5a..c8867983 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DialectFactory.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DialectFactory.java @@ -107,6 +107,8 @@ public class DialectFactory { case CUBRID: case GOLDILOCKS: case CSIIDB: + case HIVE: + case DORIS: return new CommonsDialectImpl(KeywordWrap.BACK_QUOTE, LimitOffsetProcessor.MYSQL); case CLICK_HOUSE: return new CommonsDialectImpl(KeywordWrap.NONE, LimitOffsetProcessor.MYSQL);