android存儲-sqlite

sqlite是安卓內置的輕量級關係型數據庫,它支持sql語句,適合存儲大量複雜數據。
SQLiteOpenHelper抽象類用於創建和升級數據庫,我們可以創建一個類去繼承它,重寫兩個方法
@Override
public void onCreate(SQLiteDatabase db) {
//創建數據庫
db.execSQL("這裏可以寫sql語句,比如創建一個表");
}
//升級
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//當構造方法出的version變大時會自動調此方法
//每次升級數據庫只需更改sql和case,不加break
switch(oldVersion){
case 1:
db.execSQL("");
case 2:
db.execSQL("");
default:
}
}
public MyDatabaseHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}
SQLiteOpenHelper對象創建或打開數據庫可以用getReadableDatabase或getWriteableDatabase,若數據庫不
存在則會創建,這兩種方法返回的對象都可讀寫,區別在於當數據庫不可寫入時getWriteableDatabase會
拋異常,而getReadableDatabase則會以只讀的方式打開數據庫
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this, "my.db", null, 1);
dbHelper.getWritableDatabase();
接下來就是增刪改查操作了,和contentProvider很像
增:ContentValues values = new ContentValues();
values.put("name", "aaa");
db.insert("my", null, values);
改:ContentValues values = new ContentValues();
values.put("name", "bbb");
db.update("my", values, "name=?", new String[]{"aaa"});
刪:db.delete(table, whereClause, whereArgs)
查:Cursor cursor = db.query("my",null,null,null,null,null,null,null);
//db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);
if(cursor.moveToFirst()){
do{
String name = cursor.getString(cursor.getColumnIndex("name"));
} while(cursor.moveToNext());
}
cursor.close();
發佈了36 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章