GreenDao数据库加密,升级

本文介绍了在Android中使用GreenDao进行数据库加密的方法,通过DaoMaster.OpenHelper的getEncryptedReadableDb()方法实现。同时,针对数据库升级,推荐了GreenDaoUpgradeHelper库,并提供了相关代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用到的依赖:

implementation 'org.greenrobot:greendao:3.2.2'
implementation 'net.zetetic:android-database-sqlcipher:3.5.2'
implementation 'com.github.yuweiguocn:GreenDaoUpgradeHelper:v2.1.0'

一.加密

加密用到 DaoMaster.OpenHelper ,只需要把 DaoMaster 的参数db换成DaoMaster.OpenHelper的 getEncryptedReadableDb(password)即可。

代码:

daoMaster = new DaoMaster(helper.getEncryptedReadableDb("password"));

二.数据库升级

升级用到https://github.com/yuweiguocn/GreenDaoUpgradeHelper

代码:

public class MySqlLiteOpenHelper extends DaoMaster.OpenHelper {

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

    @Override
    public void onUpgrade(Database db, int oldVersion, int newVersion) {
        super.onUpgrade(db, oldVersion, newVersion);
        MigrationHelper.migrate(db, new MigrationHelper.ReCreateAllTableListener() {
            @Override
            public void onCreateAllTables(Database db, boolean ifNotExists) {
                DaoMaster.createAllTables(db, ifNotExists);
            }

            @Override
            public void onDropAllTables(Database db, boolean ifExists) {
                DaoMaster.dropAllTables(db, ifExists);
            }
        },
                Test1Dao.class,
                Test2Dao.class);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值