Что считается лучшей практикой для обработки соединений с базой данных? (Я пропустил конструктор и метод onUpgrade в классе DatabaseHelper) Это всего лишь 2 способа, которые я нашел в Интернете, возможно, у вас есть лучший способ обработки? Я хотел бы услышать.
Вариант 1
public class DatabaseManager {
private SQLiteDatabase mDb;
public DatabaseManager(Context context) {
DatabaseHelper helper = new DatabaseHelper(context);
helper.getWritableDatabase();
}
// ... methods that use mDb
private class DatabaseHelper extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase db) {
mDb = db;
//create database
}
@Override
public void onOpen(SQLiteDatabase db) {
mDb = db;
}
}
}
Вариант 2
public class DatabaseManager {
private DatabaseHelper mDbHelper;
public DatabaseManager(Context context) {
mDbHelper = new DatabaseHelper(context);
}
// ... methods that fetch the db
private void sampleMethod() {
SQLiteDatabase db = mDbHelper.getWritableDatabase();
//do stuff with database
mDbHelper.close();
}
private static class DatabaseHelper extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase db) {
//create database
}
}
}
Кроме того, необходимо ли вызывать close () каждый раз, когда вы используете базу данных в варианте 2? Что касается использования варианта 1, я думаю, вам нужно вызвать close (), когда вызывается onDestroy приложения?