GreenDao3.0+的配置使用以及数据库升级
2016-10-11 14:21
417 查看
GreenDao是Android中用来处理数据库操作的一个比较好用的ORM框架,使用它可以简化数据库操作的代码,这里记录一下AndroidStudio中使用GreenDao的方式:
(1)配置Greendao插件引入GreenDao的jar包
app目录下的build.gradle文件中添加配置
点击Android studio开发工具中菜单栏Build下的Make Project就会在你之前(2)指定的目录下生成DaoMaster,DaoSession和DAOS,如下图:
(4)在Application中进行初始化操作
初始化操作如果我们要使用就可以通过获取Application对象来获取到Daosession以获取到具体某个表的dao来对这个表进行增删改查操作
(5)GreenDao数据库升级,在大多数情况下随着业务的变化,我们之前所创建的表可能也需要改变(比如添加一个字段啥的),这时我们需要考虑到旧数据如何保留的问题。
GreenDao在默认情况下的数据库升级是会将原来的表销毁重新创建的,这在DaoMaster类中的DevOpenHelper中的源码可以看到
所以在做数据库升级的时候我们需要修改这部分代码,我们需要做两件事情
a.修改app目录下的build.gradle文件中greendao节点下的schemaVersion加1,重新Build——>Make Project.
b.修改DevOpenHelper中的数据库升级到逻辑代码:创建临时表;将原表中的数据拷贝到临时表;删除原表,将临时表的表名修改为原表的表名。(你可以写个utils啥的,在onUpgrade方法中调用。)
(1)配置Greendao插件引入GreenDao的jar包
app目录下的build.gradle文件中添加配置
apply plugin: 'org.greenrobot.greendao'
dependencies { compile 'org.greenrobot:greendao:3.1.1' }
工程目录下的build.gradle文件中添加配置
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.1.2' classpath 'org.greenrobot:greendao-gradle-plugin:3.1.1' } }
(2)配置DaoMaster,DaoSession和DAOS的生成目录
在app目录下的build.gradle文件中android节点下添加如下配置
< 4000 span style="font-family:SimSun;">greendao{ schemaVersion 1 //数据库版本号,进行数据库升级时使用
}
(3)编写数据库中表对应的实体bean,生成对应的DaoMaster,DaoSession和DAOS。例如:
假设我们需要建一个表用来记录"笔记",我们可以创建这样一个java类
<span style="color:#000000;">package com.thunisoft.zxlz.dao.bean; import org.greenrobot.greendao.annotation.Entity; import org.greenrobot.greendao.annotation.Id; import org.greenrobot.greendao.annotation.Property; import java.util.Date; import org.greenrobot.greendao.annotation.Generated; /** * Created by Administrator on 2016-10-10. */ @Entity public class Note { @Id private String bh; @Property(nameInDb = "bt") private String bt; @Property(nameInDb = "nr") private String nr; @Property(nameInDb = "bxsj") private Date bxsj; }</span>
@Id 是指定表的主键。
@Property(nameInDb = "bt") 是指定在表中的字段名就是bt。
点击Android studio开发工具中菜单栏Build下的Make Project就会在你之前(2)指定的目录下生成DaoMaster,DaoSession和DAOS,如下图:
(4)在Application中进行初始化操作
<span style="color:#000000;">package com.thunisoft.zxlz; import android.app.Application; import android.database.sqlite.SQLiteDatabase; import com.thunisoft.zxlz.dao.DaoMaster; import com.thunisoft.zxlz.dao.DaoSession; /** * Created by Administrator on 2016-10-10. */ public class MyApplication extends Application{ private DaoSession daoSession; @Override public void onCreate() { super.onCreate(); initDataBase(); } private void initDataBase() { DaoMaster.DevOpenHelper devOpenHelper=new DaoMaster.DevOpenHelper(this,"test-db"); SQLiteDatabase db=devOpenHelper.getWritableDatabase(); daoSession=new DaoMaster(db).newSession(); } public DaoSession getDaoSession() { return daoSession; } }</span>
初始化操作如果我们要使用就可以通过获取Application对象来获取到Daosession以获取到具体某个表的dao来对这个表进行增删改查操作
<span style="color:#000000;">private void test(){ NoteDao noteDao=((MyApplication)getApplication()).getDaoSession().getNoteDao(); Note note=new Note(); note.setBh("1323432"); noteDao.insert(note);</span>
<span style="color:#000000;">}</span>
(5)GreenDao数据库升级,在大多数情况下随着业务的变化,我们之前所创建的表可能也需要改变(比如添加一个字段啥的),这时我们需要考虑到旧数据如何保留的问题。
GreenDao在默认情况下的数据库升级是会将原来的表销毁重新创建的,这在DaoMaster类中的DevOpenHelper中的源码可以看到
<span style="color:#000000;">/** WARNING: Drops all table on Upgrade! Use only during development. */ public static class DevOpenHelper extends OpenHelper { public DevOpenHelper(Context context, String name) { super(context, name); } public DevOpenHelper(Context context, String name, CursorFactory factory) { super(context, name, factory); } @Override public void onUpgrade(Database db, int oldVersion, int newVersion) { Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); dropAllTables(db, true); onCreate(db); } }</span>
所以在做数据库升级的时候我们需要修改这部分代码,我们需要做两件事情
a.修改app目录下的build.gradle文件中greendao节点下的schemaVersion加1,重新Build——>Make Project.
b.修改DevOpenHelper中的数据库升级到逻辑代码:创建临时表;将原表中的数据拷贝到临时表;删除原表,将临时表的表名修改为原表的表名。(你可以写个utils啥的,在onUpgrade方法中调用。)
相关文章推荐
- greendao3.0的使用, 以及数据库升级(保留原有数据), 和对应的sqlite写的方式
- GreenDao3.0 使用(包括导入,具体方法,基本使用,加密,数据库升级等)
- Android Studio 版本迁移的配置问题以及 GreenDAO3.0的配置使用
- greendao3.0以上使用步骤(二):数据库到底该怎么升级
- GreenDAO 3.0 数据库集成,使用,升级
- GreenDao3.2.2集成使用以及数据库的升级
- 数据库框架greenDAO3.0使用指南
- .NET CORE 数据库的配置以及使用
- GreenDao3.2的使用,以及实体类添加字段时进行升级。
- 玩转Android之数据库框架greenDAO3.0使用指南
- Android GreenDao使用(三)数据库升级
- GreenDao3.x版本的基本使用和数据库升级
- Android ORM之GreenDao3.0 使用外部数据库.db文件总结
- MySQL5.5.22版本安装配置以及基本命令的使用和管理数据库备份与恢复操作详解
- 玩转Android之数据库框架greenDAO3.0使用指南
- EF的默认映射以及如何使用Data Annotations和Fluent API配置数据库的映射
- EF的默认映射以及如何使用Data Annotations和Fluent API配置数据库的映射
- GreenDao3.0简单使用和升级
- GreenDao3.0框架使用时IDE的配置问题
- 玩转Android之数据库框架greenDAO3.0使用指南