【问题标题】:How to add initial data for DB using GreenDao in android?如何在android中使用GreenDao为DB添加初始数据?
【发布时间】:2016-09-06 22:38:29
【问题描述】:

我一直是在本机模式下插入初始数据的答案

How to add initial data to SQLite database?

如何使用 Green dao 获得相同的结果?

这是我的应用程序类

public class App extends Application{


    @Override
    public void onCreate() {

        super.onCreate();
        DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this,"Images-bd",null);
        SQLiteDatabase db = helper.getWritableDatabase();
        DaoMaster daoMaster = new DaoMaster(db);
        DaoSession daoSession = daoMaster.newSession();



    }

}

【问题讨论】:

    标签: java android sqlite greendao greendao-generator


    【解决方案1】:

    您可以创建一个扩展 DaoMaster 的类并在 onCreate 方法中运行您的查询:

    public class CustomDaoMaster extends DaoMaster {
        public CustomDaoMaster(SQLiteDatabase db) {
            super(db);
        }
    
        public static class OpenHelper extends DaoMaster.OpenHelper {
            public OpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) {
                super(context, name, factory);
            }
    
            @Override
            public void onCreate(SQLiteDatabase db) {
                super.onCreate(db);
                db.execSQL("INSERT INTO myTable VALUES('foo')");
                db.execSQL("INSERT INTO myTable VALUES('bar')");
            }
        }
    }
    

    因此,在您的Application 类中,您将使用此类的一个实例:

    public class App extends Application {
    
        @Override
        public void onCreate() {
            super.onCreate();
            CustomDaoMaster.OpenHelper helper = new CustomDaoMaster.OpenHelper(this, "Images-bd", null);
            SQLiteDatabase db = helper.getWritableDatabase();
            CustomDaoMaster daoMaster = new CustomDaoMaster(db);
            DaoSession daoSession = daoMaster.newSession();
        }
    }
    

    【讨论】:

    • 我解决了其他方法,扩展openhelper,并在其中使用GreenDao在onCreate中插入记录。
    • 小心这个例子!这是正确的(您也可以覆盖 onUpgrade)但它可能是有害的,因为 DevOpenHelper 将在每次版本升级时删除并重新创建所有表!否则使用 ...OpenHelper(没有 Dev-Prefix)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    相关资源
    最近更新 更多