在哪里可以找到Room.DataBaseBuilder(...).build()创建的数据库? 您所在的位置:网站首页 python求字符串长度及字符串中数字个数 在哪里可以找到Room.DataBaseBuilder(...).build()创建的数据库?

在哪里可以找到Room.DataBaseBuilder(...).build()创建的数据库?

2023-04-03 01:32| 来源: 网络整理| 查看: 265

现在房间是在哪里创建数据库文件的?

数据库(文件)将放置在实际设备上的默认位置,即data/data/< The _package_name>/ database /MyDB。

在您的例子中,正如您所编码的:

myDatabase = Room.databaseBuilder(appContext, MyDatabase.class, "MyDB") .build();

则数据库文件将为:-

data/data//databases/MyDB data/data//databases/MyDB-wal data/data//databases/MyDB-shm

在我的项目文件夹中找不到它。数据库文件不是项目的一部分,它是在安装应用程序的实际设备上创建和维护的文件。

然而,你可以使用Android Studio上的数据库检查器(现在的应用检查)来查看数据库,例如:-

如果您测试的任何设备允许访问,您还可以使用设备文件资源管理器查看文件。例如:

是否执行DatabaseBuilder.build()管理,以打开从以前的应用程序启动中创建的现有数据库?

是,如果文件存在,则打开该文件,否则创建该文件。如果您卸载应用程序,这实际上删除了该文件。数据库的全部思想就是持久化。

build()承担各种任务,主要是查看底层文件是否存在,然后打开该文件。在这样做的过程中,

数据库提取存储在文件中的版本号,并将该版本号与应用程序内编码的版本号进行比较(通过@Database).

If,来自应用程序的版本号大于试图寻找迁移的尝试(最近自动迁移已经被添加到Room).compares预期的模式(根据定义为@的一部分的实体)),与file.A中发现的不匹配将导致应用程序崩溃,因此,必须进行修复。

备注对文件的引用是一种简化,默认情况下,它使用一种称为WAL (预写日志)的登录模式。在WAL模式下,SQLite例程将维护额外的2个文件(您无需执行任何操作):-

数据库文件名以-wal为后缀是写入更改的主wal文件(这些更改将应用于主数据库wal

以-shm为后缀的数据库文件名(这是WAL文件的WAL文件)。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有