SQLite Databases

数据库管理

创建数据库

  • 使用SQLiteOpenHelper
    • getWritableDatabase
    • getReadableDatabase
  • 使用Context
    • openOrCreate
  • 使用SQLiteDatabase

    • openOrCreateDatabases
    • openDatabase

    前两种方法创建的数据库保存在/data/data/packageName/databases/目录下,而第三种方法保存路径由用户指定

删除数据库

  • SQLiteDatabase#delete
  • Context#deleteDatabse

DDL & DML

  • 新增数据
    • long insert
    • long insertOrThrow
    • long insertWithOnConflict
  • 删除数据
    • delete
  • 修改数据
    • replace
    • replaceOrThrow
    • update
    • updateWithOnConflict
  • 查询数据
    • query
    • queryWithFactory
    • rawQuery
    • rawQueryWithFactory
  • 通用
    • execSQL

Cursor

  • getXXX系列
    • getBlob
    • getDouble
    • getFloat
    • getInt
    • getLong
    • getShort
    • getString
    • isNull(int columnIndex)
  • 判断当前位置
    • isAfterLast
    • isBeforeFirst
    • isFirst
    • isFirst
    • getPosition
  • move
    • moveToFirst
    • moveToLast
    • moveToNext
    • moveToPosition
    • moveToPrevious
  • 其他
    • getCount

事务

  • beginTransaction
  • beginTransactionNonExclusive
  • beginTransactionWithListener
  • beginTransactionWithListenerNonExclusive

  • boolean inTransaction

  • setTransactionSuccessful
  • endTransaction

其他

  • static SQLiteDatabase create(CursorFactory factory) 创建一个数据库,数据库关闭后数据会丢失。
  • compileStatement(String sql) 创建一个可重用的预编译的SQLiteStatement

调试

调试使用SDK中的sqlite3

SQLiteOpenHelper

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);
    }
}

主要方法有:

  • onCreate
  • onUpdate
  • onClose

results matching ""

    No results matching ""