getReadableDatabase与getWritableDatabase的区别

在Android中,通过getReadableDatabase与getWritableDatabase()都可以获得一个可以对数据库进行操作的实例。然后都可以对数据库进行增、删、查、改。,但是两者也存在区别

1.getReadableDatabase是先以读写的方式打开数据库,但当数据库的磁盘满了时,就会打开失败,失败之后,程序会尝试以只读的形式打开数据库,如果能完成所需的任务,则只读的数据库就会关闭,返回一个读写的数据库对象。

2.getWritableDatabase同样也是以读写的方式打开数据库但当数据库的磁盘满了时,就会打开失败,然后因为使用的是getWritableDatabase,所以打开只读的数据库也失败,那么程序就会出错

3.getReadableDatabase方法中有调用getWritableDatabase方法

源码为:

时间: 2024-10-17 05:52:37

getReadableDatabase与getWritableDatabase的区别的相关文章

getReadableDatabase 和 getWritableDatabase的区别

(1)getWritableDatabase()方法以读写方式打开数据库.一旦数据库的磁盘空间满了,数据库就只能读而不能写,此时用getWritableDatabase()打开数据库就会出错. (2)getReadableDatabase()方法先调用getWritableDatabase()先以读写方式打开数据库.倘若使用如果数据库的磁盘空间满了,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库. 一般避免报错都是用getReadableDatabase()方法

Android getReadableDatabase() 和 getWritableDatabase()

Android使用getWritableDatabase()和getReadableDatabase()方法都可以获取一个用于操作数据库的SQLiteDatabase实例.(getReadableDatabase()方法中会调用getWritableDatabase()方法) 其中getWritableDatabase() 方法以读写方式打开数据库,一旦数据库的磁盘空间满了,数据库就只能读而不能写,倘若使用的是getWritableDatabase() 方法就会出错. getReadableDa

SQLite概述

一.SQLite特点 Android平台中嵌入了一个关系型数据库SQLite,和其他数据库不同的是SQLite存储数据时不区分类型,例如一个字段声明为Integer类型,我们也可以将一个字符串存入,一个字段声明为布尔型,我们也可以存入浮点数.除非是主键被定义为Integer,这时只能存储64位整数. 创建数据库的表时可以不指定数据类型,例如: CREATE TABLE person(id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20)) C

(一)SQLite数据库

1.SQLite数据库简介 SQL数据库与我们之前学习的mysql数据库,oracle数据基本上都是相同的,其最大的特点是:我们可以将任意类型的数据保存到任意类型的字段中,而不用考虑数据库中字段的类型是什么(但是有一种情况时例外的,如果我们将某个字段声明为整形的主键,那么其只可以保存最大长度为64位的整数,否则会报错),例如我们可以在整型的字段中保存字符串.再假设,我们将字符串的最大长度设置为20,那么在oracle或者mysql中,我们存储的字符串是不可以超过20个字符的,但是对于sqlLit

Android基础知识精简版(转)

原文  http://blog.csdn.net/heimady/article/details/10363995 1. 前言 裁剪了下转载内容,只保留我认为有用的知识点. 2. 搭建开发环境 http://tools.android-studio.org/ 3. 开发一个 Android 程序 3.1. 创建 Android 程序 ? 创建 Android Project ? Project name :项目名 ? Build Target : Android 版本 ? Application

Android文件操作的存放位置和形式

在上课学习时也学了,虽然大概知道如何用,项目中都在用,但总感觉"不系统",因此看看大牛的博客,根据自己理解与之前所学,在总结一下,心里有个底. 第一,存储位置:内部存储 ,外部存储   和 apk内部资源 内部存储(internal storage :由android系统分配给app的空间) 外部存储(external storage:开发中通常指sd卡) apk内部资源(这是我自己的归类,指的是开发时工程目录下的文件,主要为Assets目录,这样归类只是便于记忆) 以下解释来自:ht

android基础知识

1. 前言 1.1. 什么是3G.4G Ÿ 第三代移动通信技术(3rd - Generation),速率一般在几百Kbps,较之前的2G和2.5G在数据传输速度上有很大提升. Ÿ 第四代移动通信技术(4th - Generation),速度可达到100Mbps以上,几乎可以满足人们的所有传输数据的需求. Ÿ 目前主流的3G技术标准有三种: WCDMA:全球80%以上的3G网络都是采用此种制式.中国联通运营.186 CDMA2000:目前日韩及北美使用较多.中国电信运营. 189 TD-SCDMA

Android之SqlLite数据库使用

每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的.与操作系统无关的SQL数据库—SQLite.SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了.SQLite已经被多种软件和产品使用,Mozilla FireFox就是使用SQLite来存储配置数据的,Android和iPhone都是使用SQLite来存储数据的. SQLite数据库是D.Richard Hipp用C语言编

Android 游标

静下心来,学一下Android的数据库连接. 1.直接从getReadableDatabase()与getWritableDatabase()入手.    --getReadableDatabase()会返回一个只读的数据库对象. 读数据库就用它了.    --getWritableDatabase()返回一个可写的数据库对象.  写数据库就用它了. 区别:用一句话讲,getReadableDatabase()会首先问一下--我可以即读又写吗,如果不能,那我可以读吗? 2.获得游标的代码 try