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