Android:我可以为多个数据库文件使用一个SQLiteOpenHelper类吗?

pre*_*bgg 19 database sqlite android class-design

我的应用程序使用两个数据库(单独的文件)为了处理这些数据库,我创建了两个扩展SQLiteOpenHelper的Helper类,每个数据库一个.

我现在要添加第三个数据库并想知道是否需要创建另一个Helper类(如果我使用了第4个和第5个数据库,我还需要更多Helper类),或者我可以使用相同的Helper类进行多个数据库?

我在尝试使用一个Helper类时遇到的问题是我无法看到如何将各个数据库文件的名称传递给Helper.目前,数据库的名称被硬编码为每个Helper类的静态字段,但是如果我只有一个Helper类,我需要能够在创建单独的Helper时将不同的名称传递给构造函数对象; 问题是SQLiteOpenHelper构造函数似乎只是由Android调用,只有一个参数:Context.

Vit*_*nko 17

当然可以.这只是你的Helper类设计的问题.您只需将DB的名称传递给Helper类构造函数(以及必需的Context实例),而不是硬编码:

public class DBOpenHelper extends SQLiteOpenHelper {

    public DBOpenHelper(Context context, String dbName, int dbVersion) {
        super(context, dbName, null, dbVersion);
    }
...
}
Run Code Online (Sandbox Code Playgroud)