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,