greenDao3.0及以上数据库升级并保留原数据库数据,详细教程

    xiaoxiao2021-03-25  141

    在Android中很多时候都会用到本地数据库,greendao作为一个高效优化好的数据库框架被广大Android开发人员所使用,好了,其他不多说,直接进主题。

    首先在 entity中添加你所想添加的新增字段。rebuild一下项目。

    1.在app下的build.gradle文件的repositories内添加红色部分下面代码:

    buildscript { repositories { mavenCentral() maven { url "https://jitpack.io" } } dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:3.2.0' } } 2.添加依赖dependencies { compile 'org.greenrobot:greendao:3.2.0' compile 'com.github.yuweiguocn:GreenDaoUpgradeHelper:v1.1.0'} 3.自定义MySQLiteOpenHelper 类,并且继承DaoMaster.OpenHelper ,然后重写onUpgrade方法,注意:onUpgrade有2个方法,我们重写public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)第一个参数为SQLiteDatabase 的方法,而不是Database。代码如下:public class MySQLiteOpenHelper extends DaoMaster.OpenHelper { public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) { super(context, name, factory); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { MigrationHelper.migrate(db,LocationDao.class,RegistrationFormDao.class); } }其中:MigrationHelper.migrate(db,LocationDao.class,RegistrationFormDao.class); 里面参数为SQLiteDatabase db,后面紧接着的参数为你所有的Dao类。

    4.找到DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(MyApplication.getContext(),"testdb",null); 修改为MySQLiteOpenHelper devOpenHelper = new MySQLiteOpenHelper(MyApplication.getContext(),"testdb",null);

    5。修改数据库版本号,+1。 运行更新即可。如果对你有帮助,请点个赞!!!!

    转载请注明原文地址: https://ju.6miu.com/read-4526.html

    最新回复(0)