Android sqlite db-journal文件的产生和原因

留心的人会发现在android中将sqlite的数据库文件生成在SD卡上的过程中,发现生成的.db文件的旁边

生成了一个大小为0的与数据库文件同名的.db-journal文件,不明白此文件的用途,于是

google了sqlite的官方文档,发现该文件的用途如下:

该文件是sqlite的一个临时的日志文件,主要用于sqlite事务回滚机制,在事务开始时产生,

在事务结束时删除;当程序发生崩溃或者系统断电时该文件将留在磁盘上,以便下次程序运行

时进行事务回滚。

但是我创建数据库时将事务结束了,同时程序也没有崩溃,为什么还是会在磁盘上产生

.db-journal文件呢?

深入研究,发现这是sqlite生成日志文件的不同模式造成的,在android采用的这种模式下,

.db-journal文件是永久的留在磁盘上不会被自动清除的,如果没有发生事务回滚那么.db-journal

文件的大小为0,这样就避免了每次生成和删除.db-journal文件的开销。

到此,所有的疑惑解开了。

时间: 2024-10-26 23:45:40

Android sqlite db-journal文件的产生和原因的相关文章

Android SQLite DB的封装

DbOpenHelper: package com.example.db_demo01.DB; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DbOpenHelper extends SQLiteOpenHelper { private static String

[转]android sqlite db-journal文件产生原因及说明

今天在android中将sqlite的数据库文件生成在SD卡上的过程中,发现生成的.db文件的旁边生成了一个大小为0的与数据库文件同名的.db-journal文件,不明白此文件的用途,于是google了sqlite的官方文档. 发现该文件的用途如下: 该文件是sqlite的一个临时的日志文件,主要用于sqlite事务回滚机制,在事务开始时产生,在事务结束时删除:当程序发生崩溃或者系统断电时该文件将留在磁盘上,以便下次程序运行时进行事务回滚. 但是我创建数据库时将事务结束了,同时程序也没有崩溃,为

Android Sqlite基本命令

要查看数据库,首先必须要找到db文件,如果拷贝到电脑上,查看的方法比较多,在手机上,用命令查看比较直接和方便. 首先要找到数据库的位置,一般数据库时存放在程序的私有目录,所以要获取root权限. 确保开发工具已经连接上手机,打开命令行,输入adb shell 这时还没有获取root权限,输入su,手机会弹出提示,允许获取root权限 后缀变为"#",成功获取root权限,这时可以进入应用程序的私有目录, 输入cd data/data/程序包名/databases/,进入数据库的目录 下

Android SQLite的使用,基本的增删改查效果,以及ListView的效果显示

1 package com.example.sqlitetest; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 import android.content.ContentValues; 6 import android.content.Context; 7 import android.database.Cursor; 8 import android.database.sqlite.SQLiteDatabase; 9

Android+Sqlite 实现古诗阅读应用(二)

传送门:Android+Sqlite 实现古诗阅读应用(一):http://www.cnblogs.com/lfk-dsk/p/4492974.html Hi,又回来了,最近接到很多热情洋溢的小伙伴们的来信,吼开心哈,我会继续努力的=-=! 上回的东西我们做到了有个textview能随机选择诗来进行显示,这也是我做这个东西的初衷,我想找我到底有哪些古诗没有读过,更想感受一下风吹哪页看哪页的闲适(扯远了=-=!),所以功能现在差不多算是结束了, 不过一个古诗应用这么丑可不行,还有就是,我找到了我要

Android SQLite总结(一)

前言 对于Android平台来说,系统内置了丰富的API来供开发人员操作SQLite,我们可以轻松的完成对数据的存取.下面就向大家介绍一下SQLite常用的操作方法.本篇文章主要用到SQLiteDatabase的一些函数.废话少说,直接贴代码!由于数据库中操作的对象时Student类,因此我们看一下Student.java代码: [java]   view plain copy <EMBED id=ZeroClipboardMovie_1 name=ZeroClipboardMovie_1 ty

Android SQLite总结(一) (转)

Android SQLite总结(一)  郑海波 2012-08-21 转载请声明:http://blog.csdn.net/nuptboyzhb/article/details/7891887 前言 对于Android平台来说,系统内置了丰富的API来供开发人员操作SQLite,我们可以轻松的完成对数据的存取.下面就向大家介绍一下SQLite常用的操作方法.本篇文章主要用到SQLiteDatabase的一些函数.废话少说,直接贴代码!由于数据库中操作的对象时Student类,因此我们看一下St

android sqlite orm

要过年了,最近比较闲整理下以前的代码. 14年写的sqlite orm库,当时为了尽快熟悉android数据库操作,所以自己动手写了这个库.然后用这个库开发了几个项目发现用的还是比较顺手的,于是就写篇博客记录下吧. 我理解的orm的核心思想就是以对象为单位进行增删改查. app开发给字段命名是很麻烦的一件事,特别是当页面有很多控件的时候,要兼顾接口开发人员命名风格和页面快速辨认需求,如果orm再要求字段名还要考虑到数据表字段命名的问题就太麻烦了,于是我使用了反射来实现模型字段和数据表字段的对应.

android SQLite使用SQLiteOpenHelper类对数据库进行操作

链接地址:http://byandby.iteye.com/blog/835580 一. SQLite介绍 SQLite是android内置的一个很小的关系型数据库. SQLite的官网是http://www.sqlite.org/,可以去下载一些文档或相关信息. 博客中有一篇有稍微详细一点的介绍,大家可以去看一下. 二. SQLiteOpenHelper的使用方法 SQLiteOpenHelper是一个辅助类来管理数据库的创建和版本. 可以通过继承这个类,实现它的一些方法来对数据库进行一些操作