【问题标题】:How to access a local, pre-populated sqlite database using Kotlin in Android Studio?如何在 Android Studio 中使用 Kotlin 访问本地预填充的 sqlite 数据库?
【发布时间】:2020-09-06 19:56:39
【问题描述】:

对于个人项目,我正在创建一个用 Kotlin 编写的测验应用程序。为了存储有关给定问题的信息(四个选项、问题本身、类别和正确答案),我使用 SQLite 创建了一个数据库来存储所述信息。

但是,我不确定有几件事。一个是我将我的预填充数据库放在 android studio 中的什么位置,然后这个数据库会显示在 android 文件资源管理器中的什么位置。

然后,假设数据库在本地文件中并且我可以访问它,我如何创建一个允许我访问单行信息的 SQLite Db 处理程序方法。 我试过使用 SQLiteOpenHelper 没有运气。每次我尝试访问一行时,表都是空的,即使我已经创建了一个表。 此外,我查看了 ROOM,它似乎不支持访问本地的预填充文件。

我应该采取什么方法以及如何实施这种方法?感谢您回答我的任何问题。

【问题讨论】:

  • “我查看了 ROOM,它似乎不支持访问本地的预填充文件”——是的,Room 可以处理这个问题。请参阅 RoomDatabase.Builder 上的 createFromAsset()createFromFile()。 “我尝试过使用 SQLiteOpenHelper,但没有成功”——如果没有 minimal reproducible example,我们无法真正帮助您。

标签: android sql sqlite kotlin


【解决方案1】:

此外,我研究了 ROOM,它似乎不支持访问本地的预填充文件。

ROOM 解决您的问题,来自Android Docs

要从位于应用程序 assets/ 目录中任何位置的预打包数据库文件预填充 Room 数据库,请在调用 build() 之前从 RoomDatabase.Builder 对象调用 createFromAsset() 方法:

Room.databaseBuilder(appContext, AppDatabase.class, "Sample.db")
.createFromAsset("database/myapp.db")
.build()

【讨论】:

    猜你喜欢
    • 2016-01-27
    • 1970-01-01
    • 2015-12-27
    • 2021-01-26
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    相关资源
    最近更新 更多