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 真正简单的查询的主要内容,如果未能解决你的问题,请参考以下文章