Flutter——数据库Drift开发详细教程(二)

目录

1.核心API

1.1查询数据列表分页

限制返回的结果数量limit ,从某一位置开始查询offset

dart 复制代码
///limit=10, offset=10
Future<List<TodoItem>> limitTodos(int limit, {int? offset}) {
  return (select(todoItems)..limit(limit, offset: offset)).get();
}

1.2 列表排序

使用该orderBy方法。它需要一个函数列表,用于从表中提取各个排序项。您可以使用任何表达式作为排序项。

dart 复制代码
///根据对象字段title,字母排序
  Future<List<TodoItem>> sortEntriesAlphabetically() {
    return (select(todoItems)
          ..orderBy([
            // (t) => OrderingTerm(expression: t.title, mode: OrderingMode.desc),
            (t) => OrderingTerm(expression: t.title),
          ]))
        .get();
  }
  ///下图是结果,左1  mode: OrderingMode.desc 反向排序
  ///左2 默认顺序排序

1.3推迟获取与观察

如果您希望使查询可作为Future或 来使用,则可以使用其中一个抽象基类Stream来优化返回类型;Selectable ,返回数据对象或者流类型 自行选择

dart 复制代码
// Exposes `get` and `watch`
MultiSelectable<TodoItem> pageOfTodos(int page, {int pageSize = 10}) {
  return select(todoItems)..limit(pageSize, offset: page);
}

// Exposes `getSingle` and `watchSingle`
SingleSelectable<TodoItem> selectableEntryById(int id) {
  return select(todoItems)..where((t) => t.id.equals(id));
}

// Exposes `getSingleOrNull` and `watchSingleOrNull`
SingleOrNullSelectable<TodoItem> entryFromExternalLink(int id) {
  return select(todoItems)..where((t) => t.id.equals(id));
}
相关推荐
liulian091616 分钟前
Flutter for OpenHarmony 跨平台开发:番茄钟功能实战指南
flutter
有味道的男人23 分钟前
对接亚马逊平台接口,商品全量信息一键抓取
数据库
Web极客码41 分钟前
2026年Linux VPS安全加固清单:SSH、防火墙与审计就绪配置
运维·服务器·数据库
liulian09161 小时前
Flutter for OpenHarmony 效率工具开发实战:我实现的番茄钟与倒计时功能总结
flutter
儿歌八万首2 小时前
Jetpack Compose 实战:实现一个动态平滑折线图
android·折线图·compose
逻辑驱动的ken2 小时前
Java高频面试考点18
java·开发语言·数据库·算法·面试·职场和发展·哈希算法
qq_392690662 小时前
Redis怎样应对Redis集群整体宕机带来的雪崩
jvm·数据库·python
jiejiejiejie_3 小时前
Flutter for OpenHarmony 跨平台开发:待办事项功能实战指南
flutter
快乐非自愿3 小时前
Redis--SDS字符串与集合的底层实现原理
数据库·redis·缓存
这儿有一堆花3 小时前
住宅代理(Residential Proxy)技术指南
开发语言·数据库·php