Лучшая практика подключения к базе данных Android - PullRequest
2 голосов
/ 20 мая 2011

Что считается лучшей практикой для обработки соединений с базой данных? (Я пропустил конструктор и метод 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 приложения?

1 Ответ

1 голос
/ 25 мая 2011

Раньше я беспокоился обо всем этом, но недавно я начал использовать ORMLite . Это очень легкий ORM с библиотеками Android, который избавляет вас от беспокойства о подобных вещах.

Я бы сказал, что это очень скоро может стать лучшей практикой, поскольку при работе с базами данных удаляется много повторяющегося кода. Он также регулярно обновляется, и сопровождающий отвечает на запросы очень быстро.

...