Flutter/DartのDriftパッケージを使ったデータベースのデータ更新

はじめに

Flutterでのローカルデータベースの操作を容易にするDriftパッケージは、データのCRUD操作(作成・読み取り・更新・削除)を簡単に行うことができます。この記事では、Driftを使ったデータの「更新」に焦点を当てます。

Setup

Driftパッケージについてはこちらを参考にしてください

Driftによるデータの更新

前提

前提としてこちらで作成したusersテーブルを使っていきます

Flutterでのローカルデータベース管理:Driftパッケージの紹介
はじめに Flutter開発者として、ローカルデータベースの操作はアプリケーションのパフォーマンスとユーザーエクスペリエンスに大きく影響します。この記事では、この課題を解決する助けとなるパッケージ、Driftについて紹介します。 参照)Dr...

Driftによるデータの更新

基本的な更新

データの更新は、一般的には特定の条件に一致するデータを新しい値に書き換える操作を指します。Driftでは、update()メソッドを使用して更新操作を行います。

final db = MyDatabase();
final updatedUser = UsersCompanion(
  id: Value(1),
  name: Value('John'),
);

await db.into(db.users).insert(updatedUser);

ここで、UsersCompanionは自動生成されたコードの一部で、データベーステーブルの各行を表現します。Valueは、指定した値でフィールドを更新するためのラッパークラスです。

このコードでは、idがprimary keyなのでid=1のデータがname=Johnとして更新されます

条件付きのデータ更新

一般的には、全てのデータを一度に更新することは少なく、特定の条件に一致するデータだけを更新します。Driftでは、where()メソッドを使用して更新するデータの条件を指定できます。

final db = MyDatabase();
final updatedUser = UsersCompanion(
  name: Value('John Doe'),
);

await (db.update(db.users)..where((u) => u.id.equals(1))).write(updatedUser);

上記のコードは、idが1のユーザーの名前を’John Doe’に更新します。

まとめ

以上が、Driftパッケージを使用してデータをデータベースにUpdateする基本的な方法です。これらの基本的な概念を理解した上で、さらに詳細な操作や応用的な機能について学ぶことをお勧めします。また、公式ドキュメンテーションも参考にすると良いでしょう。