如何在 Android App Inspection 上运行多个查询

问题描述 投票:0回答:1

我想在我的 Android 应用程序中将数千行数据添加到 sqlite room 数据库表

sales
。下面是我在 App Inspection 中运行的一个示例查询,用于将一行数据添加到数据库中的
sales
表中。

INSERT INTO sales VALUES (1, 'Lollipop sweets', 'Food', 'Other', 2, 10, 1680574354950)

我有数千行要添加到

sales
表中。在 SQL 中,通常可以用分号 (;) 分隔多个查询,并且它们都会一个接一个地执行。使用 App Inspection 查询时,房间数据库是否有等效的数据库? 是否可以使用 App Inspection 查询一次添加所有行? 如果这是不可能的。添加数据的更好方法是什么?

kotlin android-sqlite android-room
1个回答
0
投票

是否可以使用 App Inspection 查询一次性添加所有行?

应用程序检查仅允许执行单个查询。

此外,通过 App Inspection 填充数据库将仅填充通过 Android Studio 使用的设备上的数据库。它不适合公开发布的应用程序。

使用 App Inspection 查询时,房间数据库是否有等效项?

并非专门用于 Room 或通过 Android Studio。

添加数据的更好方法是什么?

可能使用预先填充的数据库,可以通过 SQLite 工具创建和/或维护,例如 -

  • Navicat for SQLite
  • DBeaver
  • 数据库浏览器(SQLite)
  • SQLite Studio

这些都允许以某种形式从外部数据导入(至少 CSV)

但是,应该注意的是,Room 是 SQLite 的受限形式,并且具有真正的要求的期望。建议您

  1. @Entity
    带注释的类(即表格)开始,然后
  2. 创建一个适当的
    @Database
    带注释的抽象类,其中包含所有
    @Entity
    带注释的类,然后
  3. 工程编译成功,然后
  4. 使用 Android 视图检查名为 java( generated) 的目录,找到与
    @Database
    注释的类同名但后缀为
    _Impl
    的类,然后
  5. 找到
    createAllTables
    方法(函数), 6 将创建表的 SQL(忽略 room_master 表)复制到您选择的 SQLite 工具中,然后
  6. 相应地填充数据库,然后
  7. 在Android Studio中创建一个assets文件夹并将保存的数据库文件复制到assets文件夹中,然后
  8. 在调用 Room 的
    .createFromAsset
    方法时添加
    .databaseBuilder
    方法。

当数据库不存在时,应用程序会将文件从资产复制到预期位置。如果应用程序已分发,则该文件是包的一部分,因此将被分发。

© www.soinside.com 2019 - 2024. All rights reserved.