一、什么是SQLite
SQLite是Android系統(tǒng)中自帶的一個簡易高效的數(shù)據(jù)庫蕊苗,語法與MySql類似,支持事務沿彭,安卓系統(tǒng)原生支持不需要額外安裝軟件即可使用。
二尖滚、為什么要使用SQLite
對于結構較復雜的數(shù)據(jù)喉刘,F(xiàn)ile的讀寫太繁瑣,SharePreferences又只支持XML鍵值對漆弄,不好儲存復雜結構睦裳。此時撼唾,就應該使用SQLite來儲存數(shù)據(jù)廉邑,
三、如何使用
創(chuàng)建一個學生表
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[]{"%封%"});//返回影響行數(shù)
改
db.update("stutb",values,"age<?",new String[]{"50"});//返回影響行數(shù)
查
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的幫助類蛛蒙,可以實現(xiàn)一個自己的SQLite供程序統(tǒng)一訪問,可自己定義創(chuàng)建和更新的方法渤愁。
創(chuàng)建一個新的類繼承SQLiteOpenHelper類牵祟,然后實現(xiàn)其方法和構造即可使用。
調用方法
SQLiteOpenHelper helper = new MyDBOpenHelper(this,"stu.db",null,1);//根據(jù)構造方法獲取helper類
//helper.getReadableDatabase();//只讀數(shù)據(jù)庫抖格,只能查詢诺苹,不能刪除和更新咕晋,插入
SQLiteDatabase db = helper.getWritableDatabase();//可讀可寫數(shù)據(jù)庫獲取
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();