Android GreenDao3的基本使用及版本升级更新

先上图:

 

使用流程:

1、

①在App的build.gradle文件内添加内容进行配置

apply plugin: 'com.android.application'

apply plugin: 'org.greenrobot.greendao'

android {

...

greendao{

schemaVersion 1  //数据库版本号,升级数据库需要修改版本号

daoPackage'com.xiaopao.greendao.gen'  //一般为app包名+生成文件的文件夹名

targetGenDir 'src/main/java'  //自动生成的greendao代码存放路径

}

}

dependencies {

...

compile 'org.greenrobot:greendao:3.2.2' // add library
compile 'org.greenrobot:greendao-generator:3.2.2'

}

②在项目的build.gradle文件内添加内容进行配置

buildscript {
    
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0'
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
}

2、数据库初始化管理类(初始化时直接调用)

public class DbManager {

public static final boolean ENCRYPTED = true; // 是否加密

private static final String DB_NAME = "Wallet.db"; //数据库名

private static DbManager mDbManager;

private static DaoMaster.DevOpenHelper mDevOpenHelper; // 需要升级时用MySQLiteOpenHelper替换DaoMaster.DevOpenHelper,保障更新版本时保存老数据

private static DaoMaster mDaoMaster;

private static DaoSession mDaoSession;

private Context mContext;

private DbManager(Context context) {

this.mContext = context; // 初始化数据库信息

mDevOpenHelper = new DaoMaster.DevOpenHelper(context, DB_NAME);

getDaoMaster(context);

getDaoSession(context);

}

public static DbManager getInstance(Context context) {

if (null == mDbManager) {

synchronized (DbManager.class) {

if (null == mDbManager) {

mDbManager = new DbManager(context); } } }

return mDbManager;

}

/** * 获取可读数据库 *

* @param context

* @return */

public static SQLiteDatabase getReadableDatabase(Context context) {

if (null == mDevOpenHelper) {

getInstance(context); }

return mDevOpenHelper.getReadableDatabase();

}

/** * 获取可写数据库 *

* @param context

* @return */

public static SQLiteDatabase getWritableDatabase(Context context) {

if (null == mDevOpenHelper) { getInstance(context); }

return mDevOpenHelper.getWritableDatabase();

}

/** * 获取DaoMaster *

* 判断是否存在数据库,如果没有则创建数据库

* @param context

* @return */

public static DaoMaster getDaoMaster(Context context) {

if (null == mDaoMaster) { synchronized (DbManager.class) {

if (null == mDaoMaster) {

//升级对应的代码,请关注下面的一个类

MyOpernHelper helper = new MyOpernHelper(context,DB_NAME,null);

mDaoMaster = new DaoMaster(helper.getWritableDatabase()); } } }

return mDaoMaster;

}

/** * 获取DaoSession *

* @param context

* @return */

public static DaoSession getDaoSession(Context context) {

if (null == mDaoSession) {

synchronized (DbManager.class) {

mDaoSessio

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值