使用 Android 資料庫: Room

我們今天來介紹如何導入使用 Android 的資料庫 Room,Android Jetpack 套件元件之一,如何融入 MVVM 架構,並且善用一些特性減少開發上的困難。

先來看看 Room 有哪些特點:

  1. Room 把一些 SQLite 底層實作封裝起來讓我們能更方便存取資料庫,不需要再寫冗長的程式碼才能將 SQL 和 Kotlin程式資料類別轉換
  2. Room支援編譯時期的 SQL 語法檢查,不需要等到執行後才能發現錯誤。
  3. 容易整合且語法簡單需多,少掉很多囉唆的程式碼。
  4. 支援LiveData / RxJava,可以使用觀察者模式來訂閱資料變更。

完整文章已轉移至 Medium 歡迎 Clap + Follow,後續文章會陸續轉移過去。

https://medium.com/enginebai/android-database-room-ffb48fa7267e

8 thoughts on “使用 Android 資料庫: Room

Add yours

    1. 我文中的DAO裡面其實有實作一個方法叫做upsert,因為Room再insert的時候會回傳成功寫入的筆數,然後搭配 onConflict = OnConflictStrategy.IGNORE,如果寫入重複資料的時候,會回傳 -1,這時候你就可以換執行 update() 方法。

    1. 這個 by inject() 是 dependency injection 相關的寫法,我是使用 koin,跟 Room 使用完全無關。 如果你對於 dependency injection 不了解,可能要請你先了解一下這個概念後,才會大概知道這用法。 (我後續也會寫一篇關於 dependency injection 的文章來介紹)

  1. 我有找到koin,但只能在Activity內使用,無法在class PostRepositoryImpl : PostRepository 內使用,不知道這篇有沒有github可以參考

  2. 目前沒有 github 可以參考,我還正在準備相關的範例專案,如果你不急,可以再稍等一下。如果很急,那我這邊暫時幫不上你,koin 的東西也不會太困難,網路上蠻多很好的教學。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at WordPress.com.

Up ↑