diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/Db.java b/hutool-db/src/main/java/org/dromara/hutool/db/Db.java index 3ca3f6f49..444241fd7 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/Db.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/Db.java @@ -77,7 +77,7 @@ public class Db extends AbstractDb { */ public static Db of(final DbConfig config){ final DSWrapper ds = DSUtil.createDS(config); - final Dialect dialect = ObjUtil.defaultIfNull(config.getDialect(), DialectFactory.newDialect(ds)); + final Dialect dialect = DialectFactory.newDialect(ds); return of(ds, dialect); } diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/dialect/DialectFactory.java b/hutool-db/src/main/java/org/dromara/hutool/db/dialect/DialectFactory.java index 0f9ca8e3c..3a39c4183 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/dialect/DialectFactory.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/dialect/DialectFactory.java @@ -36,14 +36,18 @@ public class DialectFactory { } /** - * 根据驱动名创建方言
+ * 创建方言,如果配置中用户指定了方言,则直接返回用户指定的方言,否则根据驱动名等信息自动创建方言
* 驱动名是不分区大小写完全匹配的 * * @param dbConfig 数据库配置 * @return 方言 */ public static Dialect newDialect(final DbConfig dbConfig) { - final Dialect dialect = internalNewDialect(dbConfig); + Dialect dialect = dbConfig.getDialect(); + if(null == dialect){ + dialect = internalNewDialect(dbConfig); + } + LogUtil.debug("Use Dialect: [{}].", dialect.getClass().getSimpleName()); return dialect; }