一、什么是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();