先前提過以SQLite 進行資料儲存,但若是資料不但是有關連性,而且較多時候是局部更新,那麼使用Room 或許是個不錯的方案。
Room 有幾個層級:
Entity: 在Kotlin 以「物件」方式呈現
Dao: Data Access Object, 定義函式用以對資料進行存取
Database: 資料庫實體
幾件需要留意的事:
DB 操作不要在UI thread 時進行
定義函式操作依循CRUD(@Insert, @Query, @Update, @Delete)
一些基本操作可以參考:
https://developer.android.com/jetpack/androidx/releases/room
至於使用Room 有哪些優點,Google 已經說明(https://developer.android.com/jetpack/androidx/releases/room):
Room provides the following benefits:
Compile-time verification of SQL queries.
Convenience annotations that minimize repetitive and error-prone boilerplate code.
Streamlined database migration paths.