⌘+k ctrl+k
1.1.3 (stable)
Search Shortcut cmd + k | ctrl + k
Dart API

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
}