GreenDao 3.0 新增表和修改表的问题

1.增加或者修改数据类的字段的时候,增加字段只能增加String 类型


2.重点。。。。

在网上找了半天都在说基础的东西,我就来讲下这个增加新表的时候,出现的坑

不过是修改还是新增加表都要修改版本号

GreenDao 3.0 新增表和修改表的问题_第1张图片

注意:修改完之后必须要重新build一下项目,重新构建成功之后,会在GreenDao自动生成的这个类里面看到他的版本号修改了

GreenDao 3.0 新增表和修改表的问题_第2张图片


然后,新增加表的时候(也就是增加一个新的数据类),需要在升级这里设置一下,必须把这个两个红色字体的参数改成ture,不然会报Caused by: android.database.sqlite.SQLiteException: no such table: 表名  

public class MyDataBaseHelper extends DaoMaster.OpenHelper {
    public MyDataBaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) {
        super(context, name, factory);
    }
    //这里重写onUpgrade方法
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        MigrationHelper.migrate(db, new MigrationHelper.ReCreateAllTableListener() {
            @Override
            public void onCreateAllTables(Database db, boolean ifNotExists) {
                DaoMaster.createAllTables(db, ifNotExists);
            }

            @Override
            public void onDropAllTables(Database db, boolean ifExists) {
                DaoMaster.dropAllTables(db, ifExists);
            }
            //注意此处的参数StudentDao.class,很重要(一开始没注意,给坑了一下),它就是需要升级的table的Dao,
            //不填的话数据丢失,
            // 这里可以放多个Dao.class,也就是可以做到很多table的安全升级,Good~
        }, StudentDao.class);
    }
}

这个类是用来操作升级的,它是一个第三方工具类,直接在项目里面导入就可以了.

//用来升级greendao数据库的辅助类
compile 'com.github.yuweiguocn:GreenDaoUpgradeHelper:v2.0.0'
用法一般就是在数据库初始化的时候,拿来使用,但是必须要自己先写 一个上面那种类来调用

GreenDao 3.0 新增表和修改表的问题_第3张图片

最后增加表获取其他基本用法,请自己百度吧,太多了




你可能感兴趣的:(android)