💽
【Flutter】flutter_hiveの超基本的な使い方
※自分用メモ:Notionで過去に書いたもの
こんにちは、laughtaoneです。
Flutter学習中に備忘録として書いていますので、正確な情報でない可能性もありますのでご了承ください。
Hiveとは
NoSQLのようなものを、Flutterアプリのローカル上で使う場合に有名なのが「Hive (hive_flutter)」です。
前提
以降のコードは、次のコードで box
が定義されたとします:
final box = Hive.box<SongInfo>('songInfo');
基本的なコマンド
キーと値を指定して格納する
box.put('キー名', 値);
- キー名と値を指定して、データベースに格納するコマンド
- キー名を自分で決めて、キーと値のセットを登録する時に使う
- キーに対応する値を更新する時にも使う
値を指定して格納する
box.add(値);
- 値を指定して、データベースに格納するコマンド
- キーは自動的に生成されるため、キーを気にせず、値を登録する時に使う
- キーに対応する値の更新時には使えない
キーに対応する値を取得する
box.get('キー名');
box.get('キー名', defaultValue: デフォ値);
- キーを指定して、キーに対応する値を取得するコマンド
- 2行目のように、
defaultValue
を使うと、キーに対応する値がなかったときに返す値を設定できる
キーと値を削除する
box.delete('キー名');
- キーを指定して、キーとキーに対応する値を削除するコマンド
地味に便利なコマンド
ボックスの全ての要素の値をリストに変換
box.values.toList();
- 例えば、下のコードによってデータがboxに入れられた場合、box.values.toList(); を実行すると、次のようなリストが返される:
box.put('song1', SongInfo('Subtile', 2022)); box.put('song2', SongInfo('Pretender', 2019)); box.put('song3', SongInfo('Same Blue', 2024));
[ SongInfo('Subtile', 2022), SongInfo('Pretender', 2019), SongInfo('Same Blue', 2024) ]
ボックスの全ての要素のキーと値のペアをマップに変換
box.toMap();
- 例えば、下のコードによってデータがboxに入れられた場合、
box.put('song1', SongInfo('Subtile', 2022)); box.put('song2', SongInfo('Pretender', 2019)); box.put('song3', SongInfo('Same Blue', 2024));
box.toMap();
を実行すると、次のようなマップが返される:{ 'song1': SongInfo('Subtile', 2022), 'song2': SongInfo('Pretender', 2019), 'song3': SongInfo('Same Blue', 2024) }
- このマップからキーと値をfor文で出力させるコード:
(SongInfoは、nameとyearを持つとする)for (var entry in box.toMap().entries) { var key = entry.key; var value = entry.value; debugPrint('キーは$key・曲名は${value.name}/発売年は${value.year}'); }
- このマップからキーと値をfor文で出力させるコード:
まとめ
これらが、flutter_hiveの超基本的な使い方です。
Discussion