在Android'简单'数据库场景中,使用 database.close()和非 databaseHelper.close()是否有任何好处或理由?使用 databaseHelper.close()和非 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);
database.close();
OR
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();
答案 0 :(得分:0)
没有太大的区别。这是close()
中SQLiteOpenHelper
的完整定义:
/**
* 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。