android-sqliteandroid-sqlite入门


备注

SQLite库本身只有一个C API;为了使它可以从Java访问,Android框架使用android.database.sqlite包封装它。最重要的类是SQLiteDatabaseSQLiteOpenHelper

android.database包中包含非SQLite特定的框架的数据库相关部分。

版本

API级别

API级别平台版本名称发布日期
1 1.0 基础 2008-09-23
2.0 闪电 2009-10-26
8 2.2 升级Froyo 2010-05-20
11 3.0 蜂窝 2011-02-22
16 4.1 果冻豆 2012-07-09
19 4.4 奇巧 2013年10月31日
23 6 棉花糖 2015年10月5日

基本用法

要在应用程序中包含数据库,通常从SQLiteOpenHelper派生一个类:

public class HelloDBHelper extends SQLiteOpenHelper {
    private static final int DATABASE_VERSION = 1;
    private static final int DATABASE_NAME = "hello";

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

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE ...");
        ...
    }
}
 

该帮助程序类负责打开(以及创建/更新,如果需要)数据库。使用它来获取SQLiteDatabase对象来访问数据:

SQLiteDatabase db = helper.getReadableDatabase();
Cursor c = db.query(...);
while (c.moveToNext()) {
    String name = c.getString(0);
    ...
}
 
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("column", value);
...
db.insertOrThrow("table", null, cv);