fix Db 类 批量插入数据发生属性名乱序问题,导致数据无法正常插入

增加测试方法
This commit is contained in:
张江平
2023-06-18 17:28:02 +08:00
parent 93d4eed6a8
commit 65079d451e
3 changed files with 166 additions and 119 deletions

View File

@@ -30,7 +30,10 @@ import org.dromara.hutool.db.sql.QuoteWrapper;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* ANSI SQL 方言
@@ -67,7 +70,8 @@ public class AnsiSqlDialect implements Dialect {
}
// 批量根据第一行数据结构生成SQL占位符
final SqlBuilder insert = SqlBuilder.of(quoteWrapper).insert(entities[0], this.dialectName());
final Set<String> fields = CollUtil.filter(entities[0].keySet(), StrUtil::isNotBlank);
final List<String> fields =
entities[0].keySet().stream().filter(StrUtil::isNotBlank).collect(Collectors.toList());
return StatementUtil.prepareStatementForBatch(conn, insert.build(), fields, entities);
}