From b6b0cb226fcf184525ee7b36af3a09471e9c0057 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期一, 25 三月 2024 11:29:33 +0800 Subject: [PATCH] 修改数据统计的查询条件 --- src/main/java/com/lf/server/helper/MdbHelper.java | 42 +++++++++++++++++++++++++++++------------- 1 files changed, 29 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/lf/server/helper/MdbHelper.java b/src/main/java/com/lf/server/helper/MdbHelper.java index 66c99f5..1bae666 100644 --- a/src/main/java/com/lf/server/helper/MdbHelper.java +++ b/src/main/java/com/lf/server/helper/MdbHelper.java @@ -3,6 +3,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.gdal.ogr.DataSource; +import org.gdal.ogr.Driver; import org.gdal.ogr.Layer; import org.gdal.ogr.ogr; @@ -21,23 +22,32 @@ */ public static List<String> getTabNames(String filePath) { List<String> list = new ArrayList<>(); + + Driver driver = null; + DataSource dataSource = null; try { - org.gdal.ogr.Driver driver = ogr.GetDriverByName("PGeo"); - if (driver == null) { + driver = ogr.GetDriverByName("PGeo"); + if (null == driver) { + log.error("MdbHelper.getTabNames: PGeo is null"); return list; } - DataSource dataSource = driver.Open(filePath, 0); + dataSource = driver.Open(filePath, 0); + if (null == dataSource) { + log.error("MdbHelper.getTabNames.dataSource is null. " + filePath); + return list; + } + for (int i = 0, count = dataSource.GetLayerCount(); i < count; i++) { Layer layer = dataSource.GetLayer(i); list.add(layer.GetName()); layer.delete(); } - - driver.delete(); } catch (Exception ex) { log.error(ex.getMessage(), ex); + } finally { + GdbHelper.delete(dataSource, driver); } return list; @@ -48,27 +58,33 @@ */ public static <T> List<T> readData(Class clazz, String filePath, String layerName) { List<T> list = new ArrayList<>(); + + Driver driver = null; + DataSource dataSource = null; try { - org.gdal.ogr.Driver driver = ogr.GetDriverByName("PGeo"); - if (driver == null) { + driver = ogr.GetDriverByName("PGeo"); + if (null == driver) { return list; } - DataSource dataSource = driver.Open(filePath, 0); + dataSource = driver.Open(filePath, 0); + if (null == dataSource) { + return list; + } + for (int i = 0, count = dataSource.GetLayerCount(); i < count; i++) { Layer layer = dataSource.GetLayer(i); - - if (layer.GetName().equals(layerName)){ - GdbHelper.readLayer(clazz, layer, list); + if (layer.GetName().equals(layerName)) { + GdbHelper.readLayer(clazz, layer, list, true); break; } layer.delete(); } - - driver.delete(); } catch (Exception ex) { log.error(ex.getMessage(), ex); + } finally { + GdbHelper.delete(dataSource, driver); } return list; -- Gitblit v1.9.3