当前位置: 首页 > news >正文

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

目录

  • 1.核心API
    • 1.1查询数据列表分页
    • 1.2 列表排序
    • 1.3推迟获取与观察

1.核心API

1.1查询数据列表分页

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

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

Alt

1.2 列表排序

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

///根据对象字段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 ,返回数据对象或者流类型 自行选择

// 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));
}

请添加图片描述

相关文章:

  • Flutter AppBar 详解
  • “会话技术”——Cookie_(2/2)原理与使用细节
  • 【二叉树】java源码实现
  • 中小企业MES系统概要设计
  • 数字智慧方案6213丨智慧园区规划方案(63页PPT)(文末有下载方式)
  • 【学习笔记】第十章:序列建模:递归神经网络(RNN)
  • Python 数据智能实战 (8):基于LLM的个性化营销文案
  • Redis总结及设置营业状态案例
  • 分发饼干之 双数组匹配问题 (双指针 or 二分)
  • 【质量管理】现代TRIZ中问题识别中的功能分析——相互接触分析
  • 【算法题】荷兰国旗问题[力扣75题颜色分类] - JAVA
  • Rust 学习笔记:关于枚举与模式匹配的练习题
  • 从0搭建Transformer
  • 大学之大:瑞典皇家理工学院2025.5.2
  • 纯原生Java实现:获取整个项目中指定接口所有的实现类
  • 柔性超声耦合剂的选择与设计-可穿戴式柔性超声耦合剂面临的难题
  • [面试]SoC验证工程师面试常见问题(三)
  • 冯·诺依曼体系:现代计算机的底层逻辑与百年传承
  • 深度学习框架PyTorch——从入门到精通(YouTube系列 - 4)——使用PyTorch构建模型
  • 实现水平垂直居中的多种方法
  • 华尔兹转岗与鲁比奥集权:特朗普政府人事震荡背后的深层危机
  • 图忆|上海车展40年:中国人的梦中情车有哪些变化(下)
  • 五一假期,这些短剧值得一刷
  • 国际油价重挫!美股道指连跌三月,啥情况?
  • 陕西省通报6起违反八项规定典型问题,省卫健委原主任刘宝琴违规收受礼品礼金
  • 街区党支部书记们亮出治理实招,解锁“善治街区二十法”