操作數(shù)據(jù)庫的核心類
- SQLiteDatabase 管理和操作數(shù)據(jù)庫
獲取數(shù)據(jù)庫對象的方法:
/**
* name 數(shù)據(jù)庫名稱 (在當前的應用中是唯一)
* mode 數(shù)據(jù)庫訪問的權限 MODE_PRIVATE 私有的
* factory 游標工廠 null
*/
Context.openOrCreateDatabase(String name,int mode,CursorFactory factory);
SQLiteDatabase 主要提供的方法
void execSQL(String sql) 執(zhí)行sql語句
Cusor rawQuery(String sql,String[] selectionArgs) 查詢數(shù)據(jù)庫符合要求的內容
封裝好的方法:
insert() 插入數(shù)據(jù)到指定的表中
update() 修改指定表中的數(shù)據(jù)
query() 查詢表中的指定內容
delete() 刪除表中指定的數(shù)據(jù) - SQLiteOpenHelper 用于數(shù)據(jù)庫的創(chuàng)建和版本的更新
使用:
1.定義一個類繼承SQLiteOpenHelper
2.重寫父類的方法
onCreate(SQLiteDatatabase db) 第一次創(chuàng)建數(shù)據(jù)庫時調用, 只會被執(zhí)行一次
onUpgrade(SQLiteDatatabase db,int oldVersion, int newVersion) 當數(shù)據(jù)庫版本發(fā)生變化時, 執(zhí)行此方法(可能會被執(zhí)行多次)
3.提供一個構造方法
public DbOpenHelper(Context context) {
super(context, "phone_book", null, 1);//第一個參數(shù):上下文對象;第二個參數(shù):數(shù)據(jù)庫名巫糙;第三個參數(shù):游標工廠酱鸭;第四個參數(shù):版本號
} - 游標
游標(cursor)是系統(tǒng)為用戶開設的一個數(shù)據(jù)緩沖區(qū),存放SQL語句的執(zhí)行結果挟纱。i
可以從游標中獲取結果中每一條的數(shù)據(jù)雕凹。
方法:
boolean cursor.move(int offset) 游標向上或向下移動指定的行數(shù) , 如果offset為正數(shù),則表示向上移動; 如果為負數(shù) 表示向下移動; 并且判斷當前數(shù)據(jù)是否存在
boolean cursor.moveToNext() 游標移動到下一條數(shù)據(jù), 并且判斷下一條數(shù)據(jù)是否存在
boolean cursor.moveToPrevious() 游標移動到上一條數(shù)據(jù), 并且判斷上一條數(shù)據(jù)是否存在
boolean cursor.moveToFirst() 游標移動到第一條數(shù)據(jù), 并且判斷第一條數(shù)據(jù)是否存在
boolean cursor.moveToLast() 游標移動到最后一條數(shù)據(jù), 并且判斷最后一條數(shù)據(jù)是否存在
boolean cursor.moveToPosition() 游標移動到某一條數(shù)據(jù), 并且判斷某一條數(shù)據(jù)是否存在
int cursor.getCount() 得到游標中數(shù)據(jù)的數(shù)量
通過游標取值的方法:
獲取數(shù)據(jù)內容cursor.getString(列的編號) //列的編號從0開始
根據(jù)列的名稱得到列的編號:cursor.getColumnIndex("字段名稱");