请帮忙,对于带有数据库的Android应用程序,我有点新手。
在Greendao文档中,有一个重点是使用此代码:
List users = usersDao.queryBuilder().orderDesc(Properties.Id).list();
但不知何故,关于如何从该查询构建器中准确获取行的值,没有很好地记录它?或者甚至有一点我只能从数据库中获取第一行或最后一行?
提前感谢有帮助的人。
答案 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();
}