Untuk menggunakan implementasi database yang berbeda dengan Room, Anda perlu menemukan (atau membuat) SupportSQLiteOpenHelper.Factory
implementasi dan berikan ke RoomDatabase.Builder
your Anda melalui openHelperFactory()
:
val builder = Room.databaseBuilder(context, SomeDatabase.class, DB_NAME)
.openHelperFactory(factory)
.build()
Cara paling sederhana untuk melakukannya adalah dengan menggunakan pustaka SQLite mandiri Requery. Anda akan menggunakan RequerySQLiteOpenHelperFactory
sebagai implementasi dari SupportSQLiteOpenHelper.Factory
, dan itu akan menggunakan salinan SQLite paket Requery alih-alih kerangka kerja.
Jika, karena alasan tertentu, Anda tidak ingin menggunakan pustaka Requery, Anda perlu menemukan padanan yang Anda sukai, atau Anda perlu mengimplementasikan SupportSQLite*
API sendiri. Saya melakukannya dua kali untuk SQLCipher untuk Android, dan ini menyebalkan, tapi itu pasti bisa dilakukan.