一、什么是SQLite
SQLite是Android系統中自帶的一個簡易高效的數據庫,語法與MySql類似,支持事務,安卓系統原生支持不需要額外安裝軟件即可使用。
二、為什么要使用SQLite
對于結構較復雜的數據,File的讀寫太繁瑣,SharePreferences又只支持XML鍵值對,不好儲存復雜結構。此時,就應該使用SQLite來儲存數據,
三、如何使用
創建一個學生表
SQLiteDatabase db = openOrCreateDatabase("stu,db",MODE_PRIVATE,null);
db.execSQL("create table if not exists stutb (_id integer primary key autoincrement,name text not null,sex text not null,age integer not null)");
增
ContentValues values = new ContentValues
values.put("name","張三");
values.put("sex","男");
values.put("age",18);
db.insert("stutb",null,values);//返回增加的ID號
刪
db.delete("stutb","name like ?",new String[]{"%封%"});//返回影響行數
改
db.update("stutb",values,"age<?",new String[]{"50"});//返回影響行數
查
Cursor c = db.query("stutb",null,"_id>?",new String[]{"0"},null,null,"age");
if(c!=null){
String[] columns = c.getColumnNames();
while(c.moveToNext()){
for(String columnName:columns){
Log.i("info",columnName + " : "+c.getString(c.getColumnIndex(columnName)));
}
}
c.close();
}
db.close();
四、關于SQLiteOpenHelper
SQLiteOpenHelper是一個SQLite的幫助類,可以實現一個自己的SQLite供程序統一訪問,可自己定義創建和更新的方法。
創建一個新的類繼承SQLiteOpenHelper類,然后實現其方法和構造即可使用。
調用方法
SQLiteOpenHelper helper = new MyDBOpenHelper(this,"stu.db",null,1);//根據構造方法獲取helper類
//helper.getReadableDatabase();//只讀數據庫,只能查詢,不能刪除和更新,插入
SQLiteDatabase db = helper.getWritableDatabase();//可讀可寫數據庫獲取
Cursor c = db.query("stutb",new String[] {"_id"},"name=?",new String[] {"啥的"},null,null,null);
if(c!=null){
String[] cols = c.getColumnNames();
while(c.moveToNext()){
for(String colName:cols){
Log.i("info","值:"+colName + c.getString(c.getColumnIndex(colName)));
}
}
c.close();
}else{
Log.i("info","c的值為:"+c);
}
db.close();