DuckDB.Dart 是 DuckDB 的原生 Dart API。
Installation
DuckDB.Dart 可以从 pub.dev 安装。详情请参阅 API 参考。
将此包用作库
依赖它
运行此命令:
使用 Flutter:
flutter pub add dart_duckdb
这将在你的包的pubspec.yaml
中添加一行类似这样的内容(并运行一个隐式的flutter pub get
):
dependencies:
dart_duckdb: ^1.1.3
或者,你的编辑器可能支持 flutter pub get.
查看你的编辑器文档以了解更多信息。
导入它
现在在你的 Dart 代码中,你可以导入它:
import 'package:dart_duckdb/dart_duckdb.dart';
使用示例
查看duckdb-dart
仓库中的示例项目:
cli
: 命令行应用程序duckdbexplorer
: 为桌面操作系统以及Android和iOS构建的GUI应用程序。
以下是一些常见的DuckDB.Dart代码片段:
查询内存数据库
import 'package:dart_duckdb/dart_duckdb.dart';
void main() {
final db = duckdb.open(":memory:");
final connection = duckdb.connect(db);
connection.execute('''
CREATE TABLE users (id INTEGER, name VARCHAR, age INTEGER);
INSERT INTO users VALUES (1, 'Alice', 30), (2, 'Bob', 25);
''');
final result = connection.query("SELECT * FROM users WHERE age > 28").fetchAll();
for (final row in result) {
print(row);
}
connection.dispose();
db.dispose();
}
后台隔离查询
import 'package:dart_duckdb/dart_duckdb.dart';
void main() {
final db = duckdb.open(":memory:");
final connection = duckdb.connect(db);
await Isolate.spawn(backgroundTask, db.transferrable);
connection.dispose();
db.dispose();
}
void backgroundTask(TransferableDatabase transferableDb) {
final connection = duckdb.connectWithTransferred(transferableDb);
// Access database ...
// fetch is needed to send the data back to the main isolate
}