Пример NotesDbAdapter для одной таблицы, как насчет нескольких таблиц? - PullRequest
6 голосов
/ 26 февраля 2010

Я проверил пример NotesDbAdapter и заметил, что это только для одной таблицы. (заметки)

1) Мне интересно, как это можно сделать для нескольких таблиц? Например, у меня есть 3 таблицы на данный момент. Как мне обработать все обновления, выборки, удаления из этих трех таблиц?

2) Я вижу определенные свойства для столбцов таблицы

public static final String KEY_TITLE = "title";
public static final String KEY_BODY = "body";
public static final String KEY_ROWID = "_id";

Как бы вы определили столбцы для ситуации с несколькими таблицами?

1 Ответ

6 голосов
/ 26 февраля 2010

Для своего приложения я создал класс для определения базы данных:

public final class MyApplicationDb
{
    public static String DATABASE_NAME = "my_application_db";
    public static int DATABASE_VERSION = 1;

    public static final class Table1
    {
        public static String TABLE_NAME = "table1";
        public static String ID = "_id";
        public static String DAY = "day";
        public static String NAME = "name";
        public static String SOURCE = "source";
        public static String[] COLUMNS = { ID, DAY, NAME, SOURCE };
    }
    public static final class Table2
    {
        public static String TABLE_NAME = "table2";
        public static String ID = "_id";
        public static String CONTACT_ID = "contactId";
        public static String CONTACT_NAME = "contactName";
        public static String LAST_WISH_DATE = "lastWishDate";
        public static String[] COLUMNS = { ID, CONTACT_ID, CONTACT_NAME, LAST_WISH_DATE };
    }
}

И 2 sql скрипта для создания и обновления БД res/raw/db_create.sql и res/raw/db_update.sql

/* db_create.sql */
create table table1(
  _id integer primary key autoincrement,
  day char(5) not null,
  name varchar(64) not null,
  source varchar(64) not null);
create table table2(
  _id integer primary key autoincrement,
  contactId integer not null,
  contactName text not null,
  lastWishDate char(10) null);


/* db_update.sql */
DROP TABLE IF EXISTS table1;
DROP TABLE IF EXISTS table2

И еще один класс для создания / обновления / доступа к базе данных, аналогичный NotesDbAdapter, за исключением того, что для создания / обновления базы данных вместо констант используется сценарий sql. (посмотрите здесь , чтобы увидеть, как это сделать)

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