android中的SQLite OpenDatabase问题

时间:2013-03-20 00:27:15

标签: java android sqlite

我正在使用我需要的2个表(user_table和prod_table)设置我的数据库类

遵循本指南: http://www.codeproject.com/Articles/119293/Using-SQLite-Database-with-Android

看起来有点好,但从未说过我如何做典型的“getConnection()”方法。 例如,我在一个活动中,我想insertUserRow()我需要传递SQLiteOpenConnection数据库和用户对象。 我在每个Helper中都制作了一个Singleton:

public class UserEdbHelper extends SQLiteOpenHelper {

    static final String dbName = "edb";
    static final String userTable = "user_table";
    private static UserEdbHelper mInstance = null;

    /* --- user_table columns --- */

    static Context appContext;

    UserEdbHelper(Context context) {
        super(context, dbName, null, 33);
        this.appContext = context;
    }

    public static UserEdbHelper getInstance(Context ctx) {
        if (mInstance == null) {
            mInstance = new UserEdbHelper(ctx.getApplicationContext());
        }
        return mInstance;
    }

我还试图跟进另一个告诉我做以下事情的例子:

public class AppCore extends Application{
    // create the 2 helpers that creates the respective tables
    public static UserEdbHelper userHelper; 
    public static ProductEdbHelper productHelper;

    public static void init(Context context )
    {
        // this is supposed to instantiate the helpers or what? what does this do?
        userHelper = new UserEdbHelper(context);
        productHelper = new ProductEdbHelper(context);
    }

}

我心里想不到的东西。

另外,我为每个Helper,UserEdbHelper和ProductEdbHelper创建了两个类,这是正确的吗?每个都创建自己的表,并有自己的方法。 (基本上和我上面添加的链接结构相同,你可以在那里查看)

其中一个属性是“dbName”,我是否需要将该属性添加到两个类中或仅添加一个?

有点失落:(

我很想得到一些帮助,

提前致谢,

马里亚诺。

1 个答案:

答案 0 :(得分:2)

有人告诉我,谈论正确的做事方式比担心所有错误的方式更好。不要回顾你问题中的代码,让我建议一些我怀疑会对你有用的东西:

public class AppCore extends Application {
    public UserEdbHelper userHelper;
    public ProductEdbHelper productHelper;

    // onCreate and such stuff...

    public SQLiteDatabase getUserDb() {
        if (null == userHelper) { userHelper = new UserEdbHelper(this); }
        return userHelper.getWritableDatabase();
    }

    public SQLiteDatabase getProductDb() {
        if (null == productHelper) { productHelper = new ProductEdbHelper(this); }
        return productHelper.getWritableDatabase();
    }

    // other code

}

我可以引用你的话:“我心里想念的东西”? : - )