如何遍历greendao列表?

时间:2014-07-02 09:05:46

标签: android greendao

请帮忙,对于带有数据库的Android应用程序,我有点新手。

在Greendao文档中,有一个重点是使用此代码:

List users = usersDao.queryBuilder().orderDesc(Properties.Id).list();

但不知何故,关于如何从该查询构建器中准确获取行的值,没有很好地记录它?或者甚至有一点我只能从数据库中获取第一行或最后一行?

提前感谢有帮助的人。

2 个答案:

答案 0 :(得分:4)

实体类与所有其他类相似。因此,greendao会为所有行生成属性,您可以在访问所有其他属性表单时访问这些属性" normal"类。

要访问Id的{​​{1}}属性,您可以使用getter UserEntity

从此查询中您将获得用户列表。您可以在访问user.getId()中的任何其他列表时访问它。

要从数据库中获取第一个用户,您可以使用类似于以下的代码:

Java

为了获得最后一个用户,我建议使用颠倒顺序的类似查询:

List<User> users = usersDao.queryBuilder().orderDesc(...).limit(1).list();
if (users.size() < 1) return null;
return users.get(0);

如果您的查询只返回一个唯一实体,则可以使用List<User> users = usersDao.queryBuilder().orderAsc(...).limit(1).list(); if (users.size() < 1) return null; return users.get(0); 方法:

unique

您不需要一直构建这些查询。您可以构建一次,然后重复使用它:

User user = usersDao.queryBuilder().where(...).unique();

答案 1 :(得分:2)

Greendao列表与Java中的其他列表没有什么不同。你只需谷歌如何迭代列表。结果:Ways to iterate over a List in java?

但是这里是用于从用户获取名称值的示例的答案:

for(User user : users){
     String name = user.getName();
 }