Android SQLite在应用中数据保存查询,但是拷贝的xxx.db没有数据或没有更新,.db_wal和.db_shm文件
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文件相关推荐
- 【MySQL】根据数据表中日期字段查询某个月每一天的数据量?查询数据表中所有日期每天的数据量?近三天每天数据量?
前提这个table有一个日期字段date_time之类的 1.根据数据表中日期字段查询某个月每一天的数据量 如果要获取8月的数据,可以这么写: SELECT count(*), DATE_FORMAT ...
- android sqlite删除表中所有数据,对于Sqlite,删除Sqlite数据库中的所有表,删除sqlite数据库...
对于Sqlite,删除Sqlite数据库中的所有表,删除sqlite数据库 SQLite数据库中一个特殊的名叫SQLITE_MASTER上执行一个SELECT查询以获得所有表的索引.每一个SQLite ...
- Android Sqlite 代码实现 多表联合查询
最近开发ServerMonitor解决的一个issue,关于数据库的的升级,需要log表内添加一个is_scuuess字段并且对原数据库中每条日志的该记录赋值,判断成功的逻辑是根据不同协议的返回状态码 ...
- 从mysql读取数据保存成excel_小程序读取excel表格数据,并存储到云数据库
最近一直比较忙,答应大家的小程序解析excel一直没有写出来,今天终于忙里偷闲,有机会把这篇文章写出来给大家了. 老规矩先看效果图 效果其实很简单,就是把excel里的数据解析出来,然后存到云数据库里 ...
- Android doc|Getting Started|部分 --转载 保存数据
保存数据 大多数 Android 应用需要保存数据,即使仅保存在 onPause() 过程中与应用状态有关的信息,以便用户进度不会丢失 . 大多数非平凡应用也需要保存用户设置,并且有些应用必须在文件和 ...
- matlab 保存数据路径,matlab中如何将uitable中的数据保存在指定路径下
满意答案 wfzs7748 2013.09.18 采纳率:48% 等级:12 已帮助:13200人 要将MATLAB uitable中的数据保存很简单 1.使用get获取数据并存到指定的变量中 ...
- Hibernate-ORM:14.Hibernate中的命名查询
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客讲述命名查询,所谓命名查询是什么呢? Hibernate中允许我们在xml,实体类,甚至注解的方式来编 ...
- mybatis plug 只查id_Mybatis一对多/多对多查询时只查出了一条数据
问题描述: 如果三表(包括了关系表)级联查询,主表和明细表的主键都是id的话,明细表的多条数据只能查询出来第一条/最后一条数据. 三个表,权限表(Permission),权限组表(Permission ...
- mysql 单表数据_Mysql--单表数据记录查询
1.简单数据记录查询 1.1 简单数据查询 1.1.1 查询所有字段数据 例子: 1.1.2 "*"符号的使用 语法: 例子: 1.1.3 查询指定字段数据 例子: 1.2 避免重 ...
最新文章
- C++编程进阶4(C++中的强制类型转换运算符、不要返回自定义类内部成员的指针,引用和迭代器)
- Python中的map()函数和reduce()函数的用法
- 向周鸿祎的360安全浏览器学互联网产品运营和推广
- qq登录界面句柄_别小看QQ邮箱测试,80%的测试新手都不能写出完整的测试用例~...
- 架设流媒体服务器[转]
- 备战软考信息安全工程师经验
- matlab判断李雅普诺夫稳定性
- 车牌识别项目(3)sobel算法边缘检测
- chrome 切换标签页快捷键_chrome浏览页面常用快捷键
- vue 加headers_vue上传图片设置headers表头信息
- 图神经网络-图游走类模型-作业
- micropython(3):使用thonny ide 开发,并控制 LED 设备
- linux dwc3 usb驱动分析
- 引擎选择:GameMaker
- mysqli mysql assoc,mysqli中的mysql_fetch_assoc?
- 爱奇艺财报解读:连续两个季度盈利 会员同比增收7%
- sqlmap之sql注入(一)
- 做模具用计算机做什么的,一种工业用计算机壳体模具的制作方法
- maven--入门使用及环境变量配置
- 数据库应用(mysql)数据库管理