まーったくやり方がわからなかったRoom、ちょっとわかりはじめた気がするのでメモ。
なぜ、メモするかというと、現況では、古い技術使った方が作成ファイルと少ないし、楽だから。
Roomは比較的SQL文書かなくていいというメリットあるみたいだけど、SQL書いた方が楽で確実だと思った。
(Roomでも複雑なクエリ作るにはSQL書かなければいけないし)
■ ■ ■
<Room導入手順>
①build.gradleへ依存関係の追加
Roomの最新バージョンは、公式をみたらいいっぽい
②テーブルのエンティティ設定
作成したいテーブルごとにエンティティ設定が必要っぽい
つまり、4テーブル作りたかったら、4ファイル作る...めんど...
公式のように「User」テーブルを作ってる場合、エンティティ設定ファイル名は「User.java」でよさそう
構成の記述の下に、「コンストラクタ」や変数の値取得の関数を記述すべきっぽい
③DAO作成
作成したいテーブルごとにDAOが必要っぽい
つまり、4テーブル作りたかったら、4ファイル作る...めんど...
公式のように「User」テーブルを作ってる場合、DAOファイル名は「UserDao.java」でよさそう
④データベースクラス作成
ファイル名は一般的にしたいし、「AppDatabase.java」とかでよさそう
DBとRoomの関連付け設定するファイルっぽい
ここで、DBの作成や初期データ追加をしたかったら、公式のよくわからない情報だと
https://developer.android.com/codelabs/android-room-with-a-view#7
https://developer.android.com/codelabs/android-room-with-a-view#12
↑あたりを参考にしてやるしかない
Javaサンプルをアップされてるブログを見ていると、
Helperクラスを作成して、そこにDB名の設定とかバージョンとか更新処理とか削除処理とかもろもろ
を書いていた…
えっと...古いSQLiteの記述の方が楽です...
ということで、私はDBのクラス作成で諦めました
更新処理とか設定後に、DB作成時のみ初期データ読み込みするコードの記述考えないといけないしw
テーブル構成がシンプル(3クエリ位)でテーブル1つのみのDBで動くアプリとかじゃなきゃ、Roomにする方が大変では?
あと、Roomは、他で作成してきたSQLiteのDBをインポートさせたいっぽい気がするな...
私にはまだ向いてない技術でした。
もうちょっと使いやすく発展するのを待ちますw
自分のこども用の過去問ツール作ってるだけだし...古い技術で充分でした…