企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
[TOC] ## sqlite3_flutter_libs 和 sqlite3 ## sqflite 和 sqflite_common_ffi 移动优先, 平台需要通过 sqlite_common_ffi 实现 ``` import 'dart:io' as io; import 'package:path/path.dart' as p; import 'package:sqflite_common/sqlite_api.dart'; import 'package:sqflite_common_ffi/sqflite_ffi.dart'; import 'package:path_provider/path_provider.dart'; Future main() async { // Init ffi loader if needed. sqfliteFfiInit(); var databaseFactory = databaseFactoryFfi; final io.Directory appDocumentsDir = await getApplicationDocumentsDirectory(); //Create path for database String dbPath = p.join(appDocumentsDir.path, "databases", "myDb.db"); var db = await databaseFactory.openDatabase( dbPath, ); await db.execute(''' CREATE TABLE Product ( id INTEGER PRIMARY KEY, title TEXT ) '''); await db.insert('Product', <String, Object?>{'title': 'Product 1'}); await db.insert('Product', <String, Object?>{'title': 'Product 1'}); var result = await db.query('Product'); print(result); // prints [{id: 1, title: Product 1}, {id: 2, title: Product 1}] await db.close(); } ``` ## 区分 | 对比点 | `sqlite3 + sqlite3_flutter_libs` | `sqflite + sqflite_common_ffi` | | --- | --- | --- | | API 层级 | 低层(接近 C API) | 高层(简化的 ORM 风格 API) | | 底层实现 | FFI 调用 SQLite 动态库 | \- `sqflite`:平台通道调用原生- `sqflite_common_ffi`:FFI 调 SQLite | | 平台支持 | 跨全平台(移动 + 桌面) | \- `sqflite`:仅 Android/iOS- `sqflite_common_ffi`:桌面/测试 | | 灵活性 | 高(可自定义 SQLite 版本/扩展) | 较低(跟随系统或 `ffi` 版本) | | 上手难度 | 偏高,需要写原生 SQL | 上手简单,API 更友好 |