【14】SQLite

一、什么是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();
    原文作者:嗟嗟嗟
    原文地址: https://www.jianshu.com/p/48ae7f72e4c5
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞