0

我正在为一个 android 应用程序编写一个数据库适配器类,并计划创建特定于表的适配器类。我将像肖恩在这篇文章中所阐述的那样构建整个事物。拥有多个数据库助手类对我来说似乎是多余的,所以我想知道是否可以引用一个数据库助手类而不是创建多个。这是我正在谈论的部分:

public static class DatabaseHelper extends SQLiteOpenHelper {
    DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
    public void onCreate(SQLiteDatabase db) {
        try {
            db.execSQL(DATABASE_CREATE);
        }
        catch (SQLException ex){
            ex.printStackTrace();
        }
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data");
        db.execSQL("DROP TABLE IF EXISTS Exercise");
        onCreate(db);
    }
}
4

1 回答 1

0

我发现了对我来说看起来相当不错的解决方案,请考虑一下。创建一种基本数据库助手并在那里创建所有表

public static class BaseDbHelper extends SQLiteOpenHelper {
    BaseDbHelper (Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
    public void onCreate(SQLiteDatabase db) {
        //Create all tables here
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //Drop all tables here
        onCreate(db);
    }
}

然后您可以从 BaseDbHelper 继承并为特定表创建特定方法。在这种情况下,您不会重复代码,也不会错过您首先调用的帮助程序的初始化。

于 2012-11-09T03:12:17.717 回答