Android技巧小结之创建打开SQLite数据库的方法

PS:本人不擅长长篇大论,也没那个本事长篇大论,题目也说了是小结。

Android API有三种方法(目前发现的,有可能更多)可以打开或创建SQLite数据库。

一、SQLiteOpenHelper辅助类

SQLiteOpenHelper类是一个辅助类,用于创建或打开数据库。

该类的使用方法一般是自定义一个子类,继承自SQLiteOpenHelper,并覆写其中最关键的两个方法:onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)。当新建一个数据库时会调用前者,一般在里面做一些创建表或视图的操作。数据库版本升级时则会调用后者。

定义好子类后(假如叫SqlHelper),只要调用SqlHelper对象的getReadableDatabase()方法或getWritableDatabase()方法即可返回一个SQLiteDatabase对象。如果是第一次调用,则会创建数据库。随后可使用SQLiteDatabase对象的方法进行数据操作,如:execSQL(), insert(), update(), query(), rawQuery(), delete()等。

PS:通过该方法创建的数据库存放的目录是固定的,其路径为/data/data/packageName/databases/。


二、Context类的openOrCreateDatabase()方法

openOrCreateDatabase(String dbName, int mode, CursorFactory factory);

dbName:数据库名称。

mode:数据库操作模式。默认值为MODE_PRIVATE(即0)。可选值:MODE_WORLD_READABLE, MODE_WORLD_WRITABLE, MODE_ENABLE_WRITE_AHEAD_LOGGING

factory:附加的一个工厂类,当SQLiteDatabase实例的query函数被调用时,会使用该工厂类返回一个Cursor。可为null。

PS:该方法得到的数据库文件,其存储路径与上一方法相同。


三、直接调用SQLiteDatabase类的静态方法openOrCreateDatabases()

SQLiteDatabase类有几个静态方法可直接打开或创建数据库。

//等同于openDatabase(path, factory, SQLiteDatabase.CREATE_IF_NECESSARY)

openOrCreateDatabase(String path, CursorFactory factory)

//等同于openDatabase(file.getPath(), factory, SQLiteDatabase.CREATE_IF_NECESSARY)

openOrCreateDatabase(File file, CursorFactory factory)

//等同于openDatabase(file.getPath(), factory, SQLiteDatabase.CREATE_IF_NECESSARY, errorHandler)

openOrCreateDatabase(String path, CursorFactory factory, DatabaseErrorHandler errorHandler)

PS:该方法打开或创建的数据库文件可与上述两个方法的路径不同。



你可能感兴趣的:(android,sqlite)