CommunityCodierung & Entwicklunggithub.com

flutter/flutter-working-with-databases

Verwaltet lokale Datenpersistenz mit SQLite oder anderen Datenbanklösungen. Verwenden Sie dies, wenn eine Flutter-App große Mengen strukturierter Daten auf dem Gerät speichern, abfragen oder synchronisieren muss.

Was ist flutter-working-with-databases?

Diese Skill-Anleitung hilft Entwicklern, lokale Datenbanken in Flutter-Apps zu integrieren und zu verwalten. Sie unterstützt SQLite über das `sqflite`-Paket und NoSQL-Alternativen wie `hive` oder `drift` und bietet eine solide Grundlage für die Offline-Speicherung großer, strukturierter Datensätze. Der Skill zeigt, wie man Datenbanken öffnet, Schemata erstellt, CRUD-Operationen durchführt und Daten effizient abfragt. Er ist plattformübergreifend (iOS, Android, Web, Desktop) einsetzbar, wobei je nach Datenbank-Paket spezifische Konfigurationen nötig sein können. Besonders nützlich ist er für Anwendungen, die komplexe Abfragen, relationale Daten oder eine zuverlässige lokale Persistenz benötigen, etwa bei Offline-First-Architekturen oder datenintensiven Apps.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/flutter/skills/tree/main/skills/flutter-working-with-databases

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht flutter-working-with-databases?

Verwaltet lokale Datenpersistenz mit SQLite oder anderen Datenbanklösungen. Verwenden Sie dies, wenn eine Flutter-App große Mengen strukturierter Daten auf dem Gerät speichern, abfragen oder synchronisieren muss.

Einführung

Dieses Skill-Dokument beschreibt, wie Sie lokale Datenbanken in einer Flutter-Anwendung einrichten und verwenden können. Es konzentriert sich auf SQLite mit dem sqflite-Paket, geht aber auch auf Alternativen wie hive oder drift ein.

Voraussetzungen

  • Flutter SDK installiert
  • Ein Flutter-Projekt
  • Hinzufügen der Abhängigkeit sqflite zur pubspec.yaml-Datei: sqflite: ^2.3.0
  • Für iOS: Fügen Sie libsqlite3.tbd zu Ihrem Linker-Framework hinzu (wird automatisch erkannt)

Datenbank initialisieren

import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';

final database = openDatabase(
  join(await getDatabasesPath(), 'my_database.db'),
  onCreate: (db, version) {
    return db.execute(
      'CREATE TABLE dogs(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)',
    );
  },
  version: 1,
);

CRUD-Operationen durchführen

Create (Erstellen)

Future<void> insertDog(Database db, Dog dog) async {
  await db.insert(
    'dogs',
    dog.toMap(),
    conflictAlgorithm: ConflictAlgorithm.replace,
  );
}

Read (Lesen)

Future<List<Dog>> dogs(Database db) async {
  final List<Map<String, dynamic>> maps = await db.query('dogs');
  return List.generate(maps.length, (i) {
    return Dog(
      id: maps[i]['id'],
      name: maps[i]['name'],
      age: maps[i]['age'],
    );
  });
}

Update (Aktualisieren)

Future<void> updateDog(Database db, Dog dog) async {
  await db.update(
    'dogs',
    dog.toMap(),
    where: 'id = ?',
    whereArgs: [dog.id],
  );
}

Delete (Löschen)

Future<void> deleteDog(Database db, int id) async {
  await db.delete(
    'dogs',
    where: 'id = ?',
    whereArgs: [id],
  );
}

Datenbank schließen

await database.close();

Alternatives: Drift (ehemals Moor)

Drift ist ein modernes Flutter-Datenbank-Paket, das Codegenerierung und typsichere Abfragen bietet.

dependencies:
  drift: ^2.11.0
  sqlite3_flutter_libs: ^0.5.0
  path_provider: ^2.0.0
  path: ^1.8.0

dev_dependencies:
  drift_dev: ^2.11.0
  build_runner: ^2.4.0

Wichtige Hinweise

  • Verwenden Sie isolates für große Datenmengen, um die UI nicht zu blockieren.
  • Für komplexe Abfragen nutzen Sie rawQuery.
  • Sichern Sie Ihre Datenbank regelmäßig, z. B. mit Methoden aus dem sqflite-Paket.

Siehe auch

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

flutter/flutter-accessibility

Configure your Flutter app to support assistive technologies like Screen Readers

flutter/flutter-accessibility-audit

Triggers an accessibility scan through the widget_inspector and automatically adds Semantics widgets or missing labels to the source code.

flutter/flutter-adding-home-screen-widgets

Adds home screen widgets to a Flutter app for Android and iOS. Use when providing glanceable app information or quick actions on the device home screen.

flutter/flutter-add-integration-test

Configures Flutter Driver for app interaction and converts MCP actions into permanent integration tests. Use when adding integration testing to a project, exploring UI components via MCP, or automating user flows with the integration_test package.

flutter/flutter-add-widget-preview

Adds interactive widget previews to the project using the previews.dart system. Use when creating new UI components or updating existing screens to ensure consistent design and interactive testing.

flutter/flutter-add-widget-test

Implement a component-level test using `WidgetTester` to verify UI rendering and user interactions (tapping, scrolling, entering text). Use when validating that a specific widget displays correct data and responds to events as expected.

flutter/flutter-animating-apps

Implements animated effects, transitions, and motion in a Flutter app. Use when adding visual feedback, shared element transitions, or physics-based animations.

flutter/flutter-animation

Add animated effects to your Flutter app

flutter/flutter-apply-architecture-best-practices

Architects a Flutter application using the recommended layered approach (UI, Logic, Data). Use when structuring a new project or refactoring for scalability.

flutter/flutter-app-size

Measure and reduce the size of the Flutter app bundle, APK, or IPA

flutter/flutter-architecting-apps

Architects a Flutter application using the recommended layered approach (UI, Logic, Data). Use when structuring a new project or refactoring for scalability.

flutter/flutter-architecture

Use the Flutter team's recommended app architecture

flutter/flutter-building-forms

Builds Flutter forms with validation and user input handling. Use when creating login screens, data entry forms, or any multi-field user input.

flutter/flutter-building-layouts

Builds Flutter layouts using the constraint system and layout widgets. Use when creating or refining the UI structure of a Flutter application.

flutter/flutter-building-plugins

Builds Flutter plugins that provide native interop for other apps to use. Use when creating reusable packages that bridge Flutter with platform-specific functionality.

flutter/flutter-build-responsive-layout

Use `LayoutBuilder`, `MediaQuery`, or `Expanded/Flexible` to create a layout that adapts to different screen sizes. Use when you need the UI to look good on both mobile and tablet/desktop form factors.

flutter/flutter-caching

Cache data in a Flutter app

flutter/flutter-caching-data

Implements caching strategies for Flutter apps to improve performance and offline support. Use when retaining app data locally to reduce network requests or speed up startup.

flutter/flutter-concurrency

Execute long-running tasks in a background thread in Flutter

flutter/flutter-databases

Work with databases in a Flutter app

Verwandte Skills