Android SQLite在应用中数据保存能查询,但是拷贝的xxx.db没有数据或没有更新问题,.db_wal和.db_shm文件是什么

文章目录

  • 问题
  • 原因
  • 解决方法
  • SQLite的.db_wal和.db_shm文件

问题

拷贝ROOM数据库data/data/com.xxx.xxx/databases/xxx.db到Windows下,使用DB browser for SQLite工具打开,发现数据没有更新。但是debug应用,使用ROOM保存数据,保存成功并且能查询到数据,但是拷贝出来的xxx.db就是没有数据。

原因

数据库没有关闭!!!能查询到数据的原因是内容在磁盘缓存里,还是可以查到的,但是没有写到xxx.db文件中。经过测试重新开机也不会自动写到xxx.db文件中,要在代码中close();

如下图关闭数据不关闭数据库,应用退出也没关闭数据库

如下图关闭数据后,这是拷贝出来的数据库,就有数据了

解决方法

在应用退出的适当时机,调用数据库的close()方法,如在MainActivity的onDestroy()中close()。当你看到.db_wal和.db_shm文件文件出现时,说明数据库正在使用或者没有关闭。

    override fun onDestroy() {super.onDestroy()mySQLiteOpenHelper.close()//myRoomDb.close()}

SQLite的.db_wal和.db_shm文件

这两个文件是SQLite原子操作的缓存,当更新一些记录时,先写入.db_wal和.db_shm文件。然后,在关闭数据库或缓存到一定大小时才会写到.db文件中。这是个人理解,请自行深入学习。

Android SQLite在应用中数据保存查询,但是拷贝的xxx.db没有数据或没有更新,.db_wal和.db_shm文件相关推荐

  1. 【MySQL】根据数据表中日期字段查询某个月每一天的数据量?查询数据表中所有日期每天的数据量?近三天每天数据量?

    前提这个table有一个日期字段date_time之类的 1.根据数据表中日期字段查询某个月每一天的数据量 如果要获取8月的数据,可以这么写: SELECT count(*), DATE_FORMAT ...

  2. android sqlite删除表中所有数据,对于Sqlite,删除Sqlite数据库中的所有表,删除sqlite数据库...

    对于Sqlite,删除Sqlite数据库中的所有表,删除sqlite数据库 SQLite数据库中一个特殊的名叫SQLITE_MASTER上执行一个SELECT查询以获得所有表的索引.每一个SQLite ...

  3. Android Sqlite 代码实现 多表联合查询

    最近开发ServerMonitor解决的一个issue,关于数据库的的升级,需要log表内添加一个is_scuuess字段并且对原数据库中每条日志的该记录赋值,判断成功的逻辑是根据不同协议的返回状态码 ...

  4. 从mysql读取数据保存成excel_小程序读取excel表格数据,并存储到云数据库

    最近一直比较忙,答应大家的小程序解析excel一直没有写出来,今天终于忙里偷闲,有机会把这篇文章写出来给大家了. 老规矩先看效果图 效果其实很简单,就是把excel里的数据解析出来,然后存到云数据库里 ...

  5. Android doc|Getting Started|部分 --转载 保存数据

    保存数据 大多数 Android 应用需要保存数据,即使仅保存在 onPause() 过程中与应用状态有关的信息,以便用户进度不会丢失 . 大多数非平凡应用也需要保存用户设置,并且有些应用必须在文件和 ...

  6. matlab 保存数据路径,matlab中如何将uitable中的数据保存在指定路径下

    满意答案 wfzs7748 2013.09.18 采纳率:48%    等级:12 已帮助:13200人 要将MATLAB uitable中的数据保存很简单 1.使用get获取数据并存到指定的变量中 ...

  7. Hibernate-ORM:14.Hibernate中的命名查询

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客讲述命名查询,所谓命名查询是什么呢? Hibernate中允许我们在xml,实体类,甚至注解的方式来编 ...

  8. mybatis plug 只查id_Mybatis一对多/多对多查询时只查出了一条数据

    问题描述: 如果三表(包括了关系表)级联查询,主表和明细表的主键都是id的话,明细表的多条数据只能查询出来第一条/最后一条数据. 三个表,权限表(Permission),权限组表(Permission ...

  9. mysql 单表数据_Mysql--单表数据记录查询

    1.简单数据记录查询 1.1 简单数据查询 1.1.1 查询所有字段数据 例子: 1.1.2 "*"符号的使用 语法: 例子: 1.1.3 查询指定字段数据 例子: 1.2 避免重 ...

最新文章

  1. C++编程进阶4(C++中的强制类型转换运算符、不要返回自定义类内部成员的指针,引用和迭代器)
  2. Python中的map()函数和reduce()函数的用法
  3. 向周鸿祎的360安全浏览器学互联网产品运营和推广
  4. qq登录界面句柄_别小看QQ邮箱测试,80%的测试新手都不能写出完整的测试用例~...
  5. 架设流媒体服务器[转]
  6. 备战软考信息安全工程师经验
  7. matlab判断李雅普诺夫稳定性
  8. 车牌识别项目(3)sobel算法边缘检测
  9. chrome 切换标签页快捷键_chrome浏览页面常用快捷键
  10. vue 加headers_vue上传图片设置headers表头信息
  11. 图神经网络-图游走类模型-作业
  12. micropython(3):使用thonny ide 开发,并控制 LED 设备
  13. linux dwc3 usb驱动分析
  14. 引擎选择:GameMaker
  15. mysqli mysql assoc,mysqli中的mysql_fetch_assoc?
  16. 爱奇艺财报解读:连续两个季度盈利 会员同比增收7%
  17. sqlmap之sql注入(一)
  18. 做模具用计算机做什么的,一种工业用计算机壳体模具的制作方法
  19. maven--入门使用及环境变量配置
  20. 数据库应用(mysql)数据库管理

热门文章

  1. 用vue去实现百度下拉菜单
  2. 信号明确简单 顶底指标公式 通达信 副图 源码
  3. echarts saveAsImage提示字显示不全
  4. vue eslint 自动修复
  5. ZOJ 3898 Stean (求旋转体体积与面积)
  6. 有道云笔记,熊掌记和 Effie 哪个适合单口或脱口秀作者?
  7. 多个excel表格合并成一个表格文件
  8. 【iOS开发】iOS系统更新到10.3以上无法下载企业应用
  9. 风控标签体系的使用与介绍
  10. vsFTPd服务器相关配置