GreenDao3.x版本的基本使用和数据库升级

目前GreenDao在Android数据库开发中较其他开发框架有着更大的优势,本篇文章主要讲述GreenDao3.x版本的基本使用和使用GreenDao进行应用的数据库升级。

一、GreenDao的环境配置

1.当前项目Project的build.gradle
这里写图片描述

2.当前module的build.gradle
这里写图片描述
配置GreenDao相应类生成的位置,在android{…}中添加如下代码:
这里写图片描述

这里写图片描述

二、GreenDao的使用

2.1 搭建实体类
这里的实体类的各个属性就是相应表的列,示例代码如下所示:

package study.com.greendaodemo.dao;
import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Property;
import org.greenrobot.greendao.annotation.Generated;

@Entity
public class User {
    private Long id;
    private String nickName;
    private int age;
}

2.2 生成相应DaoManager、DaoMaster、DaoSession以及xxxDao
创建完实体类之后,在AndroidStudio中进行编译便可生成上述四个类。具体操作如下所示:
这里写图片描述
其中xxxDao就是实体类名+Dao,即就是相应实体类的Dao。

2.3 GreenDao3.x的注解
GreenDao3.x中提供了大量实体类注解,相应实体类中必须要添加@Entity否则不能生成相应的数据库操作类,其他注解可以根据需求去网上查询这里就不做介绍了。

三、应用数据库升级

步骤一:将之前的xxxDao保存一份
步骤二:修改Module中build.gradle下关于greendao的schemaVersion的值,该值必须比之前的值大。
步骤三:在相应的实体类中添加想要新增的字段,然后重复本篇博客第二部分的操作即可生成新的数据库操作类。
步骤四:由于GreenDao提供的升级数据库的方法就是删除之前的表同时创建新的表,虽然达到了升级数据库的效果,但是却把之前表中的数据也删除了。如果想要在保存之前表中数据的同时达到升级数据库的目的,那么就要继承DaoMaster.OpenHelper同时重写onUpgrade方法。示例代码如下所示:

package study.com.greendaodemo;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

import org.greenrobot.greendao.database.Database;

import study.com.greendaodemo.dao.DaoMaster;
import study.com.greendaodemo.dao.UserDao;

public class UserHelper extends DaoMaster.OpenHelper {
    public UserHelper(Context context, String name) {
        super(context, name);
    }

    public UserHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) {
        super(context, name, factory);
    }

    @Override
    public void onUpgrade(Database db, int oldVersion, int newVersion) {
        //UserDao.class是添加完字段之后的生成的
        //UserDao1.class是为升级之前生成的
        MigrationHelper.migrate(db, UserDao.class, UserDao1.class);
    }
}

四、Demo的应用截图

这里写图片描述
上图中MigrationHelper是一位国外大神封装的数据迁移类,DaoManager是我自己封装数据库操作类,这两个类在后面Demo源码地址中可以下载到。

五、效果图如下所示

未升级数据库数据截图如下:
这里写图片描述

升级数据库数据截图如下:
这里写图片描述
从上面两张图可以发现数据库升级之后添加了ADDRESS字段同时也保存了原来的数据。

Demo源码地址
https://github.com/Duckdan/GreenDaoDemo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值