⌘+k Ctrl+k
1.3 (稳定版)
搜索快捷键 cmd + k | ctrl + k
Dart 客户端

DuckDB Dart 客户端的最新版本是 1.2.2。

DuckDB.Dart 是 DuckDB 的原生 Dart API。

安装

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:一个 GUI 应用程序,可用于桌面操作系统以及 Android 和 iOS。

以下是 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
}