Android/Room/DAO
Data Access Objectの略。
データベース操作をinterfaceで定義しておくと、Roomがbuild時にデータベース操作を行うクラスを生成してくれる。
DAOはデータベースの操作をうまくまとめてくれる
直接SQLiteを叩いて、データを連れてきて、をする必要がなく、DAOによりKotlinのメソッドを呼び出すだけでよくなる アノテーションの例
@Insert
アイテムの作成
@Update
アイテムの更新
@Delete
アイテムの削除
@Query
その名の通り、データの取得や上記アノテーションではできないことを扱う
記述されたSQL文はコンパイル時に検査される
例: @Query("SELECT * FROM posts")
データベース内のデータが変更された場合にその値へ通知される
つまり最新の状態に保たれる
明示的に取得するのは1回だけでよくなる
バックグラウンドで実行されるようになる
参考