sqlite 如何从我的设备中提取房间数据库?

hof1towb  于 2022-11-15  发布在  SQLite
关注(0)|答案(2)|浏览(125)

我正在尝试使用Android的新房间数据库助手。
因此,我已经为条目和DAO以及数据库本身创建了所有类。
然后,我在MainActivity中创建了db的一个示例:

mDb = myDatabase.getDatabase(getApplication());

但是什么时候在Android设备上创建“物理的”数据库文件呢?
我想要做的是将该文件复制到我的PC上,并在SQLITE管理器中打开它,以便以一种更舒适的方式填充空数据库。
但我不知道在哪里查找它,或者文件是否已经由我的应用程序创建(应用程序已经生成了JSON模式文件,所以我认为数据库也存在)。
那么,我如何知道它是否存在,以及如何将其从我的设备拉到我的PC上?

rqmkfv5c

rqmkfv5c1#

1)它是在您第一次运行任何类型的查询时创建的,例如,从您的DAO中调用使用@Query@Insert或其他注解的任何方法
2)打开Device File Explorer(您可以在Android Studio的右下方找到它),然后导航到:data/data/YOUR_PACKAGE_NAME/databases/,您的数据库文件将存储在Room.databaseBuilder方法中指定的名称。在此位置,您可以右击文件并将其复制到您的PC

fkvaft9z

fkvaft9z2#

既然你问的是
我如何知道它是否存在,以及如何将其从我的设备拉到我的PC上
人们可能会发现这种查看、修改和导出数据库的方法很有用,我取自Android开发人员用户指南:

要求:

  • Android Studio 4.1或更高版本
  • 运行API级别26或更高级别的设备您的应用程序正在模拟器上运行

使用数据库检查器调试数据库

在Android Studio 4.1及更高版本中,数据库检查器允许您在应用程序运行时检查、查询和修改应用程序的数据库。这对于数据库调试特别有用。数据库检查器使用普通的SQLite和构建在SQLite之上的库,例如Room

打开数据库检查器

要在数据库检查器中打开数据库,请执行以下操作:
1.在运行API级别26或更高级别的模拟器或连接的设备上运行您的应用程序。**注意:**一个与Android 11模拟器相关的已知问题会导致应用程序在连接到DB Inspector时崩溃。有关此问题的帮助可在此处找到->https://developer.android.com/studio/known-issues#ki-android-11-db-inspector.
1.从菜单栏中选择查看>工具窗口>应用检查。
1.选择数据库检查器选项卡。
1.从下拉菜单中选择正在运行的APP进程。
1.当前运行的应用程序中的数据库将显示在数据库窗格中。展开要检查的数据库的节点。

查看和修改数据

数据库窗格显示应用程序中的数据库以及每个数据库包含的表的列表。双击表名称可在右侧的检查器窗口中显示其数据。您可以单击列标题以按该列对检查器窗口中的数据进行排序。
可以通过双击单元格、键入新值并按Enter键来修改表中的数据。如果您的应用程序使用Room,并且您的用户界面观察数据库(例如使用LiveData或Flow),则您对数据所做的任何更改都会立即在运行中的应用程序中可见。否则,更改仅在应用程序下一次从数据库中读取修改后的数据时可见。

从数据库检查器导出数据

您可以从数据库检查器中导出数据库、表和查询结果,以便在本地保存、共享或重新创建。当您在Android Studio中打开应用程序项目并在数据库检查器中检查该项目的应用程序时,您可以通过以下方式之一开始导出数据:

  • 在“数据库”面板中选择一个数据库或表,然后单击面板顶部附近的“导出到文件”。
  • 在数据库面板中右键单击数据库或表,然后从上下文菜单中选择导出到文件。
  • 在选项卡中检查表或查询结果时,单击表或查询结果上方的导出到文件。

选择导出操作后,您可以使用导出对话框帮助您完成最后几个步骤。根据您是尝试导出数据库、表还是查询结果,您可以选择以以下一种或多种格式导出数据:DB、SQL或CSV。
请参阅:https://developer.android.com/studio/inspect/database#view-data

相关问题