From 1c27f8aef973a441c5d31cbb340c4d347f2bf7ae Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Tue, 18 Mar 2025 16:34:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:android=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../facediscern/database/DataBaseUtils.java | 46 ++++++++++++++----- lib/common/utils/sync/sync_face_tool.dart | 2 +- 2 files changed, 36 insertions(+), 12 deletions(-) diff --git a/android/app/src/main/java/io/flutter/plugins/facediscern/database/DataBaseUtils.java b/android/app/src/main/java/io/flutter/plugins/facediscern/database/DataBaseUtils.java index 8894276..b30484c 100644 --- a/android/app/src/main/java/io/flutter/plugins/facediscern/database/DataBaseUtils.java +++ b/android/app/src/main/java/io/flutter/plugins/facediscern/database/DataBaseUtils.java @@ -21,14 +21,18 @@ public class DataBaseUtils { static public List getUserFace(Context context, String queryUserId) { List result = new ArrayList<>(); int rowCount = 0; + DatabaseHelper databaseHelper = null; + SQLiteDatabase database = null; + Cursor cursor = null; try { - DatabaseHelper databaseHelper = new DatabaseHelper(context); - SQLiteDatabase database = databaseHelper.getWritableDatabase(); + databaseHelper = new DatabaseHelper(context); + database = databaseHelper.getWritableDatabase(); String sql = "SELECT * FROM face"; - Cursor cursor = database.rawQuery(sql, null); if (Objects.nonNull(queryUserId) && !Objects.equals(queryUserId, "")) { sql = sql.concat(" WHERE userId = ?"); cursor = database.rawQuery(sql, new String[]{queryUserId}); + } else { + cursor = database.rawQuery(sql, null); } Log.i(TAG, "getUserFace,sql:" + sql + ";queryUserId:" + queryUserId + ";"); rowCount = cursor.getCount(); @@ -64,23 +68,33 @@ public class DataBaseUtils { } result.add(item); } - // 关闭资源 - cursor.close(); - databaseHelper.close(); Log.i(TAG, "查询人脸数据库成功人脸总数:" + rowCount + "list长度:" + result.size() + ";"); return result; } catch (Exception e) { Log.e(TAG, "查询数据库人脸错误error:" + e.getMessage(), e); + return result; + } finally { + if (cursor != null) { + cursor.close(); + } + if (database != null) { + database.close(); + } + if (databaseHelper != null) { + databaseHelper.close(); + } } - return result; } static public Boolean updateFaceModel(Context context, FaceEntity faceEntity) { + DatabaseHelper databaseHelper = null; + SQLiteDatabase database = null; + SQLiteStatement statement = null; try { - DatabaseHelper databaseHelper = new DatabaseHelper(context); - SQLiteDatabase database = databaseHelper.getWritableDatabase(); + databaseHelper = new DatabaseHelper(context); + database = databaseHelper.getWritableDatabase(); String sqlUpdate = "UPDATE face SET faceModel = ? WHERE sampleId = ?"; - SQLiteStatement statement = database.compileStatement(sqlUpdate); + statement = database.compileStatement(sqlUpdate); statement.bindString(1, fromByteArray(faceEntity.getFaceModel())); statement.bindLong(2, faceEntity.getSampleId()); int rowsAffected = statement.executeUpdateDelete(); @@ -89,8 +103,18 @@ public class DataBaseUtils { } catch (Exception e) { Log.e(TAG, "更新人脸模型失败username:" + faceEntity.getUserName() + ";id:" + faceEntity.getFaceId() + ";"); Log.e(TAG, "更新人脸模型失败error:" + e.getMessage(), e); + return false; + } finally { + if (statement != null) { + statement.close(); + } + if (database != null) { + database.close(); + } + if (databaseHelper != null) { + databaseHelper.close(); + } } - return false; } public static byte[] toByteArray(String json) { diff --git a/lib/common/utils/sync/sync_face_tool.dart b/lib/common/utils/sync/sync_face_tool.dart index 6e0cd48..db19160 100644 --- a/lib/common/utils/sync/sync_face_tool.dart +++ b/lib/common/utils/sync/sync_face_tool.dart @@ -47,7 +47,7 @@ class SyncFaceTool { }) async { final app = Get.find(); final faceDao = app.dataBase.getFaceDao; - const size = 50; + const size = 100; var pa = { "current": pageNo, "size": size,