GreenDao3.0升级数据库
来源:互联网 发布:webpack node env 编辑:程序博客网 时间:2024/05/21 17:31
看了好几篇文章,最后还是自己搞明白的,唉,长话短说:
在app的gradle里添加配置,这个配置和dependencies是同级的:
greendao{ daoPackage'com.example.administrator.worktest01' //生成DaoMaster的包 targetGenDir'src/main/java' //生成DaoMaster的目录 schemaVersion 1 //数据库的版本,刚开始是1}我们首先先创建一个只有一个成员变量name的Student实体类来进行测试.
然后需要注意的是不能再使用DaoMaster里的newDevSession(Context,String)来得到DaoSession对象了,因为这样做,我们的升级过程会走DevOpenHelper中的onUpgrade方法,大家可以看到DevOpenHelper方法上有一行警告:
WARNING: Drops all table on Upgrade! Use only during development.这个意思就是,这个方法只能在开发过程中使用,为什么呢?
我们可以看DevOpenHelper的onUpgrade方法得知,他的升级做法是先dropAllTables删除所有的表,然后在onCreate数据库,这样的话,我们之前的数据全部都会被清除了.
所以我们要自定义StudentDaoHelper类(这个名字随便起)继承DaoMaster.OpenHelper,重写onUpgrade方法:
public class StudentDaoHelper extends DaoMaster.OpenHelper { public StudentDaoHelper(Context context) { super(context, "stu.db"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { super.onUpgrade(db, oldVersion, newVersion); //这里进行要升级版本的判断,我这里偷懒没写 db.execSQL("alter table STUDENT add age text");//这里新增了一个age列 }}然后我们在用数据库时需要这样来用:
StudentDaoHelper helper = new StudentDaoHelper(上下文); DaoMaster daoMaster = new DaoMaster(helper.getWritableDb()); DaoSession daoSession = daoMaster.newSession(); StudentDao dao = daoSession.getStudentDao();
需要升级的时候
(1) 在gradle里更新数据库的版本号
(2) 更新实体类(比如我们这个是添加成员变量age)
(3) 最后在StudentDaoHelper中写更新语句
1 0
- GreenDao3.0升级数据库
- GreenDao3.0数据库升级
- (二)GreenDao3.0的数据库升级
- GreenDao3 数据库升级问题
- GreenDao3.0+的配置使用以及数据库升级
- 数据库框架GreenDao3.0
- GreenDao3.2.2 App数据库升级遇到问题
- greenDao3.0及以上数据库升级并保留原数据库数据,详细教程
- greendao3.0以上使用步骤(二):数据库到底该怎么升级
- GreenDao3.0 使用(包括导入,具体方法,基本使用,加密,数据库升级等)
- GreenDao3.0简单使用和升级
- Android数据库GreenDAO3.2.2的使用(四、数据库升级)
- Android数据库框架——GreenDao3.2的配置 升级
- GreenDao3.x Demo 拓展了一部分数据库升级功能.
- GreenDao3.2.2集成使用以及数据库的升级
- greenDAO3 入门(配置,基本操作,数据库升级)
- greenDAO的使用详解---(2)greenDAO3.2.2数据库的升级
- Android之数据库框架greenDAO3.0使用指南
- Linux C 线程与竞争
- android activity与多个fragment之间的瓜葛
- php安装指南
- MySQL常量查询
- 一个2年安卓开发者的一些忠告
- GreenDao3.0升级数据库
- Linux - chown 中的 -R 参数
- 一个简单的放大镜功能
- 强制刷新浏览器调用的js和css以及js清除浏览器缓存的几种方法
- break和continue区别
- 创建N个子进程
- 百度地图画出手机GPS行驶轨迹——Web端
- 【TZCOO】saas WMS 云仓库管理软件的问题
- Sass学习之路(9)——插值 #{}