android - 将 Green DAO 与内容提供者一起使用

标签 android database orm android-sqlite greendao

我打算在我的项目中使用GreenDAO。我已经通过创建测试项目对其进行了测试。但是,我有几个要求需要满足。

  1. 我的应用程序的数据库将被加密。为此,我们计划使用 SQLCipher .我找到了这个 link .我正在研究它,但有兴趣知道原始 GreenDAO 项目中是否有可用的东西。

  2. 由于我的应用程序会与服务器同步数据,因此我将使用 SyncAdapter因为我不想自己做所有繁重的工作,而这已经由 Android 框架完成了。但它需要 Content Provider 才能使用。那么,如何将 GreenDAO 与 Content Provider 一起使用。

更新 2

我的项目有七个实体。我对实体使用了 addContentProvider()。并生成七个不同的内容提供者。有什么办法可以将所有 sqlite 表放在一个内容提供程序中吗?

最佳答案

我有一个使用 greenDao 和内容提供程序运行的项目。首先我使用 ProviGen只是为了生成内容提供者并使用内容解析器进行查询,但后来项目变得非常大,所以我决定实现 greenDAO,我所做的是使用在 provigen 中创建的 contentProvider 从中获取数据库,所以现在我有contentProvider 和 provigen 都附加到同一个数据库。我鼓励您创建您的 ContentProvider 并将您的 daoMaster 附加到使用它生成的数据库。这是我在 onCreate 应用程序类中使用的一段代码:

private static DaoSession daoSession;
public void onCreate(){
SQLiteOpenHelper myAppOpenHelper = new ProvigenContentProvider().openHelper(this); //ContentProvider created previously
SQLiteDatabase db = myAppOpenHelper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
}

之后就可以使用 greendao 了:

public DaoSession getDaoSession(){
        return daoSession;
}

在那里你可以同时拥有 contentProvider 和 greenDao。如果您还没有开始您的项目,请手动创建内容提供者并在此处使用相同的代码创建 DaoMaster。祝你好运

关于android - 将 Green DAO 与内容提供者一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26073144/

相关文章:

sql - 使用 Ktor + Exposed (Kotlin) 进行数据库迁移的推荐方法是什么?

Hibernate - 更改默认序列表名称

python - 在设计 python 类时,使用 getters/setters 和属性的良好风格是什么

android - 如何从 Android Google Maps API V2 获取 MapView 的位图

java - Android - 如果内部类是服务,GC 会收集我的外部类吗?

java - 编辑文本到 Int

python - Django注释相关字段

java - 如何在android中使用数据库明智地删除数据ID而不是位置

mysql - 如何从行中选择数据并一次更新它们?

php - 使用 cakephp 3 从不同的数据库中检索关联模型