GreenDAO 真正简单的查询

Posted

技术标签:

【中文标题】GreenDAO 真正简单的查询【英文标题】:GreenDAO really simple query 【发布时间】:2014-01-10 04:05:24 【问题描述】:

我想创建一个非常简单的查询来使用 greendao 查找 sqlite 数据库。 2 个字段,一个是 ID,另一个是“确认”。 我很抱歉成为这样的初学者,但我不确定如何使用 greendao,包括要导入的内容等。到目前为止,我所能做的就是添加 greendao 库,但我找不到一个好的教程来做一个询问。基本上我希望它是一个随机 ID,它会调用一个随机确认并将其返回到我的主要活动中。再次抱歉,但我真的很努力但一无所获..

【问题讨论】:

这里有一个很好的关于如何使用 GreenDAO 的教程:blog.surecase.eu/using-greendao-with-android-studio-ide。它还显示了如何为您的条目插入 ID。 查看这个帖子wiki.workassis.com/android-greendao-example 【参考方案1】:

Greendao 是一个 ORM 框架。如果你不知道这意味着什么,你应该先查一下。

Greendao 一般工作如下:

您创建一个 java 项目,为您的真实应用程序生成源代码。您必须在此项目中包含 DaoCore 和 DaoGenerator。 您将生成的源代码添加到您的 android-project 并在其中包含 DaoCore。 DaoGemerator 不是必需的。

有关如何生成代码和定义实体的示例,greendao 网站是一个不错的选择。

根据您的描述,您需要一个具有 id-property 和 string-property(确认)的实体。

然后,在您的 android 项目中,您可以使用 DevOpenHelper 获取会话,并从会话中获取实体的 dao(数据访问对象)。 dao 包含非常基本的查询,用于按 id (load ()) 加载数据。

请注意 DevOpenHelper 仅用于开发过程。对于您的最终版本,您应该扩展 OpenHelper 并定制您在 DB-schema 更新时要采取的行动。

【讨论】:

【参考方案2】:

这是我的应用程序中的一些示例代码。

DaoHelper.getInstance().getDaoSession().clear(); 
OperationDao dao = DaoHelper.getInstance().getDaoSession().getOperationDao();
String userId = "some id"
WhereCondition wc1 = new WhereCondition.PropertyCondition(OperationDao.Properties.UserId,
                " = " + userId);
WhereCondition wc2 = new WhereCondition.PropertyCondition(OperationDao.Properties.Priority,
            " > " + 4);
// Uncached is important if your data may have changed recently.
List<Operation> answer = dao.queryBuilder().where(wc1, wc2).listLazyUncached();

【讨论】:

【参考方案3】:

This 是一个关于如何学习 greendao 的不错的教程。确保您点击链接到其他部分。

你可以使用:

daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
yourDao = daoSession.getYourDao();

Random() random = new Random();
List<YourObject> objects = yourDao.loadAll();
YourObject yourObject = objects.get(random.nextInt(objects.size());

【讨论】:

以上是关于GreenDAO 真正简单的查询的主要内容,如果未能解决你的问题,请参考以下文章

[转]Android ORM系列之GreenDao最佳实践

android_orm框架之greenDAO

开源框架GreenDao的操作

GreenDao操作本地db文件(使用greendao 新版3.2.2 )

GreenDao数据库的简单使用

Android GreenDao 深查询 n:m 的关系