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