如何使用 flutter_moor 获取 table 中的条目数?
How to get the number of entries in a table using flutter_moor?
当我向 table 添加条目时,我需要知道 table 中的元素数。
onPressed: () {
final db = Provider.of<AppDb>(context);
final habitCount = 0; /* Number of entries in the "Habits" table */
db.into(db.habits)
.insert(HabitsCompanion.insert(name: "Sleep", order: habitCount * 2 ));
},
我怎样才能尽可能轻松地做到这一点?
您可以创建 DAO 来管理所有查询。在这里,我给你一个 todos table 的例子,它在文档中使用。
在此示例中,您可以通过 queries
键创建手动查询。
@UseDao(tables: [Todos], queries: {'totalTodos': 'SELECT COUNT(*) FROM todos;'})
class TodoDao extends DatabaseAccessor<MyDatabase> with _$TodoDaoMixin {
final MyDatabase database;
TodoDao(this.database) : super(database);
Future<int> getTotalRecords() {
return totalTodos().getSingle();
}
}
使用方法:
Selectable<int> total = TodoDao(database).totalTodos();
total.getSingle().then((value) => print('Records: $value'));
希望你能理解这个例子。如果您有任何问题,请告诉我。
当我向 table 添加条目时,我需要知道 table 中的元素数。
onPressed: () {
final db = Provider.of<AppDb>(context);
final habitCount = 0; /* Number of entries in the "Habits" table */
db.into(db.habits)
.insert(HabitsCompanion.insert(name: "Sleep", order: habitCount * 2 ));
},
我怎样才能尽可能轻松地做到这一点?
您可以创建 DAO 来管理所有查询。在这里,我给你一个 todos table 的例子,它在文档中使用。
在此示例中,您可以通过 queries
键创建手动查询。
@UseDao(tables: [Todos], queries: {'totalTodos': 'SELECT COUNT(*) FROM todos;'})
class TodoDao extends DatabaseAccessor<MyDatabase> with _$TodoDaoMixin {
final MyDatabase database;
TodoDao(this.database) : super(database);
Future<int> getTotalRecords() {
return totalTodos().getSingle();
}
}
使用方法:
Selectable<int> total = TodoDao(database).totalTodos();
total.getSingle().then((value) => print('Records: $value'));
希望你能理解这个例子。如果您有任何问题,请告诉我。