Каковы преимущества использования адаптера, помощника для создания или доступа к базе данных? - PullRequest
1 голос
/ 11 марта 2012

В настоящее время я создаю базу данных SQLite в Android, используя следующий код:

    SQLiteDatabase db;
try{
            SQLiteDatabase  dbe = SQLiteDatabase.openDatabase("/data/data/bangla.rana.fahim/databases/dictionary", null,0);
            dbe.close();
   }
            catch(SQLiteException e){

                db = openOrCreateDatabase("dictionary", MODE_PRIVATE, null);
                db.execSQL("CREATE TABLE IF NOT EXISTS LIST(wlist varchar,ex varchar);");                
                db.close();
            }

И получение данных с помощью курсора, как:

  Cursor cc = db.rawQuery(q, null);//q is the desired query.

Но я видел много примеров использования помощника и адаптеров для той же цели. Итак, мой вопрос, каковы преимущества их использования?

Ответы [ 2 ]

3 голосов
/ 11 марта 2012

Полагаю, вы имеете в виду SQLiteOpenHelper, документация довольно ясна:

Вспомогательный класс для управления созданием базы данных и управления версиями.

Вы создаете подкласс, реализующий onCreate (SQLiteDatabase), onUpgrade (SQLiteDatabase, int, int) и опционально onOpen (SQLiteDatabase), и этот класс заботится об открытии базы данных, если она существует, создавая ее, если она не существует, и обновляя ее как необходимо. Транзакции используются, чтобы убедиться, что база данных всегда в разумном состоянии.

При этом вам не нужно вручную создавать свою базу данных и позаботиться о ее обновлении. Вам просто нужно реализовать два метода onCreate() и onUpgrade() с вашей логикой базы данных, и Android обязательно вызовет эти методы, когда это необходимо. Я не знаю, на что вы ссылаетесь, когда говорите «адаптер».

0 голосов
/ 11 марта 2012

Ну, это больше касается шаблонов разработки программного обеспечения. В SQLiteOpenHelper вы выполняете задачи, больше связанные с созданием и обновлением базы данных, когда пользователь устанавливает приложение или при изменении версии базы данных.

В классе Adapter, который содержит предыдущий класс, вы обычно держите ссылку на базу данных, и у вас есть методы, чтобы фактически взаимодействовать с ней, выполняя различные виды запросов (выбирает, вставляет ...).

Таким образом, ваш код хорошо инкапсулирован, и поэтому его гораздо проще поддерживать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...