まーったくやり方がわからなかった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

自分のこども用の過去問ツール作ってるだけだし...古い技術で充分でした…昇天