Android 注:Badapter示例适用于一个表,多个表如何?

Android 注:Badapter示例适用于一个表,多个表如何?,android,sqlite,Android,Sqlite,我已经检查了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";

我已经检查了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";

如何为多表情况定义列?

对于我的应用程序,我创建了一个类来定义数据库:

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脚本而不是常量来创建/更新数据库。(看看怎么做)

onUpgrade事件为所有数据库触发一次,或为每个表类单独触发?
onUpgrade()
在Android检测到
数据库版本
已增加时触发。你可以在里面做你想做的事。通常情况下,您会删除所有表(请参阅db_update.sql脚本)并调用
onCreate()
重新创建数据库。不建议为每个表创建1个MyApplicationDb和几个新的Table1类吗?在c#中,我为我拥有的每个表创建了一个类,但我没有包装到适配器中。这正是我要做的,表是MyApplicationDb类中的类。它们只是在执行查询时用作引用。