android SQLiteDatabase <一>

1. 在应用中的任何一个类都可以通过名字找到这个db,但是其他应用不行。

2. 创建db的推荐方式是: 继承SQLiteOpenHelper。并且重写onCreate()方法,在onCreate语句中执行建表语句。    (TODO: SQLiteOpenHelper源码)。

public class DictionaryOpenHelper extends SQLiteOpenHelper {

    private static final int DATABASE_VERSION = 2;    private static final String DICTIONARY_TABLE_NAME = "dictionary";    private static final String DICTIONARY_TABLE_CREATE =                "CREATE TABLE " + DICTIONARY_TABLE_NAME + " (" +                KEY_WORD + " TEXT, " +                KEY_DEFINITION + " TEXT);";

    DictionaryOpenHelper(Context context) {        super(context, DATABASE_NAME, null, DATABASE_VERSION);    }

    @Override    public void onCreate(SQLiteDatabase db) {        db.execSQL(DICTIONARY_TABLE_CREATE);    }}

3.  public SQLiteDatabase getWritableDatabase ()  这是SQLiteOpenHelper类的方法。使用getWritableDatabase() 和 getReadableDatabase()来获得一个SQLiteDatabase. 第一次调用getWritableDatabase()时,数据库会被打开,会调用SQLiteOpenHelper中的onCreate()方法、onUpdate()或者onOpen()方法。数据库一旦被打开,就会在缓冲中,所以在任何时候都可以进行数据库操作。 (所以当再也不用这个数据库的时候,应该要把它关闭。执行close()方法)如果是disk满了或者是权限不足,则这个方法会执行失败。但是如果条件满足,再次执行没有问题的。
抛异常: SQLiteException  在数据库无法打开或者是无法写入的时候抛出。
4. 数据库更新 onUpdate()这个方法是耗时操作。不应该在主线程中使用,也不该在ContentProvider.onCreate() 中使用


时间: 2024-11-14 13:46:21

android SQLiteDatabase <一>的相关文章

Android SQLiteDatabase分析

Android中的数据存储使用的小巧的SQLite数据库.为了方便java层使用SQLite,android做了大量的封装,提供了一些列的类和API.本文章就揭露这些封装背后的类图关系. 老规矩,首先上图: SQLiteOpenHelper是Android SDK所提供的一个帮助类,通过此类来管理数据库的创建和版本控制. 通过SQLiteOpenHelper函数getReadableDatabase和函数getWritableDatabase可以得到一个SQLiteDatabase对象.用户通过

Android:Sqlitedatabase学习小结

今天刚刚学习完Sqlite数据库的基础知识,随即把学到的东西记录下来,以便随后查阅,以下是自己对Sqlite数据库的小结:1.Sqlite简介       Sqlite是一款轻型的数据库,它包含在一个相对小的C库中,它的设计目标是嵌入式的,由于它占用资源非常少,可能只需要几百K的内存就可以了,并且支持Windows/Linux/Unix等等主流的操作系统,同时可以和很多种程序语言相结合,比如:C#/Java/php等,所以在嵌入式设备中特别受欢迎,这一点也正好符合android的开发要求,所以在

Android SQLiteDatabase帮助类SQLiteOpenHelper的使用

SQLiteOpenHelper是SQLiteDatabse的一个帮助类,用来管理数据的创建和版本更新.一般的用法是定义一个类继承SQLiteOpenHelper,并实现两个回调方法,OnCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabse, int oldVersion, int newVersion)来创建和更新数据库,我利用数据库做了一个类似电话本的功能,插入数据,查询数据,和删除数据,界面很丑,主要是讲解SQLiteOpenHelper类的用

Android开发之SQLite优化

本文原地址为:http://blog.csdn.net/horkychen/article/details/18892223 关于SQLite的优化,首先是能用SQL语句批次处理的,就不要单笔操作,Cursor就更是能不用就不用.比如成批的DELETE/UPDATE,将条件组装到SQL语句,会比使用CURSOR一条条的查再删效率要高很多(若干年前就曾使用存储过程代替单笔操作,将一次批量计算时间从一天缩到了数分钟以内,参考).其次是对操作的优化:对于INSERT/UPDATE操作较多时使用事务,如

Android 数据存储——SQLite实例、判断数据库中表是否存在

本文主要记录一下Android SQLiteDatabase中如何判断数据库中表是否存在,以及测试SQLiteDatabase数据库的基本操作.有关SQLite的详细说明,可以查看转载的Android 数据存储--SQLite使用详解 例子: AndroidManifest.xml--没有做任何修改,创建工程默认 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="

Android Sqlite数据库执行插入查询更新删除的操作对比

下面是在Android4.0上,利用Sqlite数据库的insert,query,update,delete函数以及execSql,rawQuery函数执行插入,查询,更新,删除操作花费时间的对比结果. 是在执行相同的动作,记录条数也一样的情况下的对比,多次验证的结果是: (1)如果批量执行的记录数在1000条,则Android SqliteDatabase提供的insert,query,update,delete函数和直接写SQL文的execSql,rawQuery的效率差不多,几乎一样.所以

Android 数据存储之 SQLiteDatabase

? 惯例:安卓的三种本地的典型数据存储方式 SharedPreferences 以文件格式保存在本地存储中 SQL数据库 本节学习的是 SQLiteDatabase 的使用方式,而在使用方面也只是展示了如何创建数据库,创建表,写入数据.然后查询出来. 因为之前在 word 中操作以表格的形式插入多行代码时遇到了无法高亮,模糊不清的状况,所以本节并不会写出使用方法. 详情请直接访问我的 GitHub 项目:https://github.com/Chenstyle/AndroidTraining 具

Android——采用SQLiteDatabase操作SQLite数据库

除了能够使用文件或SharedPreferences存储数据.还能够选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进制对象)数据类型,尽管它支持的类型仅仅有五种,但实际上sqlite3也接受varchar(n).char(n).decimal(p,s) 等数据类型.仅仅只是在运算或保存时会转成相应的五种数据类型. SQLite最大的特

Android数据储存之SQLiteDatabase 简单增删改查

SQLiteDatabase 使用 SQLiteDatabase提供如下方法来打开一个文件对应的数据库: openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flags)  打开path文件所代表的文件 openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory)   打开或创建(如果不存在时)path文件所代表的文件 openOr