首页 > 代码库 > android SQLiteDatabase <一>

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() 中使用



android SQLiteDatabase <一>