SuperAPI AI 工具集

flutter-drift

数据与分析

查看项目

更新于 10-15 22:17

技能介绍

用途:为 Flutter 应用提供使用 drift 库实现本地 SQLite 持久化存储的完整指导。drift 是基于 SQLite 的响应式持久化库,支持类型安全查询、自动更新流、模式迁移与跨平台运行。

主要能力:表定义与约束、SELECT/WHERE/JOIN/聚合查询、INSERT/UPDATE/DELETE 与事务、响应式流查询、数据库模式迁移、Flutter UI 集成,以及移动端、桌面端与 Web 的跨平台配置。

使用方式:在 pubspec.yaml 添加依赖 drift、drift_flutter、path_provider,开发依赖 drift_dev、build_runner;用 @DriftDatabase 注解定义数据库类并设置 schemaVersion;运行 dart run build_runner build 生成代码。UI 中可用 StreamBuilder 监听 select(...).watch() 实现响应式列表,用 into(...).insert(...) 写入,用 update(...).replace(...) 更新。数据库实例可通过 Provider/Riverpod 管理并在销毁时关闭。Web 端需将 sqlite3.wasm 与 drift_worker.js 放入 web/ 目录。测试可用 NativeDatabase.memory() 创建内存数据库。

适用场景:需要在 Flutter 中做本地结构化存储、离线数据、响应式界面更新的应用。

限制与注意事项:资料未提供收费、价格与效果信息。构建失败可运行 dart run build_runner clean 与 dart run build_runner build --delete-conflicting-outputs;迁移问题可用 dart run drift_dev schema validate 与 dart run drift_dev make-migrations。流不更新时需确保操作走 drift API 而非原始 SQLite。建议为 WHERE 列建索引、限制流查询规模、多步操作使用事务、对搜索输入做防抖并处理加载与错误状态。