ActiveAndroid 库中 execute() 和 executeSIngle() 方法之间的区别?

Difference between execute() and executeSIngle() methods in ActiveAndroid library?

我是 ActiveAndroid 的新手,我被查询数据库困住了。 请帮我弄清楚 ActiveAndroid 库中 execute()executeSingle() 方法的区别?

这两种方法都用于查询数据库,但我不知道什么时候使用前者,什么时候使用后者?

execute()executeSingle() 之间的区别在 documentation 中有所解释:

If we only want to get items from a certain category, we pass in a string for our where class argument. The method would look like this:

public static Item getRandom(Category category) {
    return new Select()
        .from(Item.class)
        .where("Category = ?", category.getId())
        .orderBy("RANDOM()")
        .executeSingle();
}

And here's how we get all the items in a category, sorted by name.

public static List<Item> getAll(Category category) {
    return new Select()
        .from(Item.class)
        .where("Category = ?", category.getId())
        .orderBy("Name ASC")
        .execute();
}

如您所见,execute() return 是一个列表,而 executeSingle() return 是一个对象。

在上面的示例中,第一个 return 一个随机对象匹配查询,而第二个 return 所有对象按升序排列。

换句话说,使用 executeSingle() 到 return 第一个结果,并使用 execute() 到 return 包含所有对象的列表。

execute()return是一个对象列表,而executeSingle()return是第一个已执行查询的元素 returned list.

所以 execute() 的 return 值是一个列表,executeSingle() 的 return 值是单个对象。