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