Flutter/Dart Query Data
Query Data
SELECT files live under queries/. Subdirectories become generated namespaces
and file names become generated method names.
queries/task/selectAll.sql
queries/task/selectById.sql
Basic SELECT
SELECT id, title, completed, created_at
FROM task
ORDER BY created_at DESC;
queries/task/selectAll.sql generates a Dart method under db.task:
final rows = await db.task.selectAll().asList();
for (final row in rows) {
print(row.title);
}
Parameters
Named parameters become generated params objects.
SELECT id, title, completed, created_at
FROM task
WHERE id = :id;
final task = await db.task
.selectById(TaskSelectByIdParams(id: 42))
.asOneOrNull();
Result Cardinality
Use the runner method that matches the expected result shape:
asList()for zero or more rows.asOne()when exactly one row must exist.asOneOrNull()when zero or one row is valid.
Dart SELECT methods also expose watch() for reactive reads:
final subscription = db.task.selectAll().watch().listen((rows) {
setState(() => tasks = rows);
});