Android"简单"数据库场景:使用database.close()或databaseHelper.close()关闭更好吗?



在Android的"简单"数据库场景中,使用database.close()和NotdatabaseHelper.close()有什么好处或理由吗?使用databaseHelper.close()和Notdatabase.close()有什么好处或理由吗?

这两种封闭方法(如下所示)存在的技术原因是什么?

谢谢,James

MyDatabaseHelper databaseHelper = new MyDatabaseHelper(this);
SQLiteDatabase database = databaseHelper.getWritableDatabase();
   ContentValues valuesToInsert = new ContentValues();
   int id = 0;
   valuesToInsert.put("_id", id);
   valuesToInsert.put("name", "test");
   database.insert("MyRecordsTable", null, valuesToInsert);
database.close();

MyDatabaseHelper databaseHelper = new MyDatabaseHelper(this);
SQLiteDatabase database = databaseHelper.getWritableDatabase();
   ContentValues valuesToInsert = new ContentValues();
   int id = 0;
   valuesToInsert.put("_id", id);
   valuesToInsert.put("name", "test");
   database.insert("MyRecordsTable", null, valuesToInsert);
databaseHelper.close();

没有太大的区别。这是SQLiteOpenHelper:中close()的全部定义

/**
 * Close any open database object.
 */
public synchronized void close() {
    if (mIsInitializing) throw new IllegalStateException("Closed during initialization");
    if (mDatabase != null && mDatabase.isOpen()) {
        mDatabase.close();
        mDatabase = null;
    }
}

两者都存在的原因是,在某些情况下,开发人员可能只使用SQLiteOpenHelper与数据库接口,并希望close()方法作为直接访问数据库的便利,如果开发人员根本不选择使用OpenHelper,则反之亦然。

最新更新