From 7e80ca95f631ecbce3d7de1b89f62d4f6de6d58f Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期六, 26 十一月 2022 09:54:36 +0800 Subject: [PATCH] q --- src/main/java/com/lf/server/helper/MdbHelper.java | 26 +++++++++++++++----------- 1 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/lf/server/helper/MdbHelper.java b/src/main/java/com/lf/server/helper/MdbHelper.java index 71bb0fe..4a7a158 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,13 +22,16 @@ */ 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"); + 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; } @@ -38,11 +42,10 @@ layer.delete(); } - - dataSource.delete(); - driver.delete(); } catch (Exception ex) { log.error(ex.getMessage(), ex); + } finally { + GdbHelper.delete(dataSource, driver); } return list; @@ -53,20 +56,22 @@ */ 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"); + 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); break; @@ -74,11 +79,10 @@ layer.delete(); } - - dataSource.delete(); - driver.delete(); } catch (Exception ex) { log.error(ex.getMessage(), ex); + } finally { + GdbHelper.delete(dataSource, driver); } return list; -- Gitblit v1.9.3