2023-11-10
androidアプリを開発していて少しデータベースを使いたくなった時に
よくお世話になるのがSQLiteです。
一般的にはpostgreやMYSQLとルールは変わりませんが、このSQLiteはとにかく軽量かつ
操作が簡単で、データベースを少ししか触ったことが無いというかたでも手軽に
操作することができます。
他のデータベースシステムと同様文字列や数値を保存・取り出しはできるのですが
画像を保存するときは少々めんどくさいです。
一応画像をバイト単位に変換することで保存はできるみたいですが
画像そのままの状態で保存するので通信処理が遅くなってしまいます。
特に100kを超えていると保存ができないまたはアプリの動作が遅くなって予期せぬ
エラーを発生させかねません。
回避方法は画像のパスを保存し、必要に応じてそのパスを介して画像を取得する。
保存するものは画像そのものでなく画像のパス
内部ストレージ側には画像を保存しておく
つまり、パスを辿ってストレージに保存した画像を見つけられるようにしておく
ことで画像を保存できるようになります。
これを銭湯に例えてみると、
靴箱→内部ストレージ(実際に要素が入っている場所)
ナンバープレート→パス(データベースが読むもの)
取り出すときにナンバープレート(パス)さえ把握できていれば
どこに靴(画像)があるか簡単に区別することができます。
このめんどくささから分かるように大規模なアプリ開発には向いておらず
せいぜい自分用のアプリか小規模なアプリ程度しか需要はないっぽい。
ですがデータベースの操作の入門としてはかなり使用感が良いのでおすすめです。