From 0120a42fc52d9e55bc22a450e35a24b2d844b8ad Mon Sep 17 00:00:00 2001
From: 邹裕 <2723363702@qq.com>
Date: 星期二, 22 九月 2026 17:32:55 +0800
Subject: [PATCH] 修复ucanaccess查询中文排序mdb数据库导致索引失效查询缓慢问题
---
src/main/java/com/hwtd/mes/collect/service/impl/DataCollectionServiceImpl.java | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/hwtd/mes/collect/service/impl/DataCollectionServiceImpl.java b/src/main/java/com/hwtd/mes/collect/service/impl/DataCollectionServiceImpl.java
index 678eb5e..65410ff 100644
--- a/src/main/java/com/hwtd/mes/collect/service/impl/DataCollectionServiceImpl.java
+++ b/src/main/java/com/hwtd/mes/collect/service/impl/DataCollectionServiceImpl.java
@@ -2,10 +2,12 @@
import com.hwtd.mes.collect.dto.DatabaseDTO;
import com.hwtd.mes.collect.service.DataCollectionService;
+import com.hwtd.mes.collect.util.JackcessTableReader;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.sql.*;
@@ -20,8 +22,24 @@
*/
private final static List<String> MDB_EXCLUDE_TYPES = Arrays.asList("java.sql.Blob");
+ /**
+ * Access 璇诲彇鏂瑰紡锛�
+ * jackcess锛堥粯璁わ級鈥斺�� 鐢� jackcess 鍙鐩磋鍗曡〃銆佹寜闇�鍙栧垪锛屼笉鏋勫缓 HSQLDB 闀滃儚锛屽彧瑕佽〃閲屽嚑鍒楁椂鏈�蹇紱
+ * ucanaccess 鈥斺�� 璧板師鏉ョ殑 SQL 璺緞锛堥渶瑕� Access SQL銆侀摼鎺ヨ〃 remap 绛夊満鏅椂浣跨敤锛夈��
+ */
+ @Value("${mes.access.read-mode:jackcess}")
+ private String accessReadMode = "jackcess";
+
@Override
public List<Map<String, Object>> getAccessData(DatabaseDTO databaseDTO) {
+ if (databaseDTO == null || StringUtils.isBlank(databaseDTO.getFilePath())) {
+ throw new RuntimeException("Access鏁版嵁搴撴枃浠惰矾寰勪笉鑳戒负绌�");
+ }
+ // 榛樿 jackcess 鐩磋锛氬彧鍙栨煇寮犺〃鐨勫嚑鍒椾笉闇�瑕� SQL 寮曟搸锛屼篃涓嶇敤绛夋暣涓簱闀滃儚杩� HSQLDB
+ if (!"ucanaccess".equalsIgnoreCase(StringUtils.trimToEmpty(accessReadMode))) {
+ return JackcessTableReader.read(databaseDTO);
+ }
+
List<Map<String,Object>> list = new ArrayList<>();
try{
Properties prop = new Properties();
--
Gitblit v1.9.3