3

我正在尝试在我的 Android 项目中实现 DBFlow。我已经能够创建一个表并向其中添加行和列。我有两列,ID 和名称。现在我想从表中检索名称并按 ID 降序排列。我在 Github DBFlow 页面中找到了这个示例语法

SQLite.select()
  .from(table)
  .where()
  .orderBy(Customer_Table.customer_id, true)
  .queryList();

SQLite.select()
    .from(table)
    .where()
    .orderBy(Customer_Table.customer_id, true)
    .orderBy(Customer_Table.name, false)
    .queryList();

但我无法理解“Customer_Table.customer_id”在该代码中的含义。当我尝试使用 orderBy() 方法时,Android Studio 建议将 (NameAlias nameAlias, boolean) 作为参数。如何将 NameAlias 添加到我的表中?有人可以帮我吗?

4

2 回答 2

3

当您在项目中实现 DbFlow 时,它会自动为您使用 @Table 注释进行注释的每个表模型构建一个表类。

即,如果您有一个名为Customer 的表,那么对应的类就是Customer_Table,如果您的表是User,那么对应的类就是User_Table。

让它成为您的客户表:

@Table
public class Customer extends BaseModel {
    @Column
    String customer_name;
}

如果您想在客户表中使用客户名称对结果进行排序,请像这样使用,

SQLite.select()
  .from(table)
  .where()
  .orderBy(Customer_Table.customer_name, true)
  .queryList();
于 2017-04-12T06:25:43.800 回答
0

在“Customer_Table.customer_id”中,Customer_Table 是表名,customer_id 是列名。您可以从数据库中获取名称和 ID,并以编程方式对数据列表进行排序,或者您可以使用此查询

mDb.query(true, PT_TABLE, new String[] {KEY_PID, KEY_NAME}, null, null, null, null, KEY_PID+" DESC", null);

于 2016-03-28T17:53:00.123 回答