diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/dialect/Dialect.java b/hutool-db/src/main/java/org/dromara/hutool/db/dialect/Dialect.java
index b384f73c6..9fdebfe46 100644
--- a/hutool-db/src/main/java/org/dromara/hutool/db/dialect/Dialect.java
+++ b/hutool-db/src/main/java/org/dromara/hutool/db/dialect/Dialect.java
@@ -17,13 +17,12 @@ import org.dromara.hutool.db.Entity;
import org.dromara.hutool.db.Page;
import org.dromara.hutool.db.sql.Order;
import org.dromara.hutool.db.sql.Query;
-import org.dromara.hutool.db.sql.SqlBuilder;
import org.dromara.hutool.db.sql.QuoteWrapper;
+import org.dromara.hutool.db.sql.SqlBuilder;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.PreparedStatement;
-import java.sql.SQLException;
/**
* SQL方言,不同的数据库由于在某些SQL上有所区别,故为每种数据库配置不同的方言。
@@ -173,7 +172,7 @@ public interface Dialect extends Serializable {
/**
* 构建用于upsert的{@link PreparedStatement}
- * 方言实现需实现此默认方法,如果没有实现,抛出{@link SQLException}
+ * 方言实现需实现此默认方法,如果没有实现,抛出{@link DbException}
*
* @param conn 数据库连接对象
* @param entity 数据实体类(包含表名)
diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/dialect/impl/DmDialect.java b/hutool-db/src/main/java/org/dromara/hutool/db/dialect/impl/DmDialect.java
index 5428f7714..a5eb20101 100644
--- a/hutool-db/src/main/java/org/dromara/hutool/db/dialect/impl/DmDialect.java
+++ b/hutool-db/src/main/java/org/dromara/hutool/db/dialect/impl/DmDialect.java
@@ -49,6 +49,16 @@ public class DmDialect extends AnsiSqlDialect {
return DialectName.DM.name();
}
+ /**
+ * 构建用于upsert的{@link PreparedStatement}
+ * 达梦使用 MERGE INTO 语法可合并 UPDATE 和 INSERT 语句
+ * 参考文档:https://eco.dameng.com/document/dm/zh-cn/pm/insertion-deletion-modification#5.4%20MERGE%20INTO%20%E8%AF%AD%E5%8F%A5
+ *
+ * @param conn 数据库连接对象
+ * @param entity 数据实体类(包含表名)
+ * @param keys 查找字段,某些数据库此字段必须,如H2,某些数据库无需此字段,如MySQL(通过主键)
+ * @return {@link PreparedStatement}
+ */
@Override
public PreparedStatement psForUpsert(final Connection conn, final Entity entity, final String... keys) {
Assert.notEmpty(keys, "Keys must be not empty for DM MERGE SQL.");