Android之SQLite本地缓存数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/generallizhong/article/details/83010249

一、在android中数据本地存储分为SQLite数据存储,Sharedprferences数据的储存,File存储,ContentProvider、还有一种为网络(Network)

1、在这里主要就说明SQLite数据的存储, SQLite是轻量级嵌入式数据库引擎,它支持SQL语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目(Mozilla,PHP,Python)都使用了SQLite。SQLite由以下几个组件组成:SQL编译器、内核、后端以及附件。SQLite通过利用虚拟数据库引擎(VDBE)。使调试、修改和扩展SQLite的内核变得更加方便。

2、Android提供了SQLiteOpenHelper帮助创建一个数据库,只要继承SQLiteOpenHelper类,就可以创建数据库。SQLiteOpenHelper类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper的子类,至少需要实现三个方法。

 a、构造函数,调用父类的SQLiteOpenHelper的构造函数。这个方法需要四个参数:上下文环境(例如,一个Activity),数据库名称,一个可选的游标工程(通常为null),一个代表正在使用的数据库模型版本的整数。

 b、onCreate()方法,它需要一个SQLiteDatabase对象作为参数,根据需要对这个对象填充表和初始化数据。

 c、onUpgrage()方法,它需要三个参数,一个SQLiteDatabase,一个旧的版本号和一个新的版本号,这样就可以清楚如何将一个数据库从旧的模型转变到新的模型。

3、如果要从数据库执行写入和读取的操作,就要别调用getWriteableDatabase()和getReadableDatabase(),两个都会返回一个表示数据库的SQLiteDatabase对象,并提供用于SQLite操作的方法。

4、当完成了对数据库的操作(加入Activity已经关闭),需要调用SQLiteDatabase的close()方法来释放掉数据库连接。为了创 建表和索引,需要调用SQLiteDatabase的execSQL()方法来执行DDL语句。如果没有异常,这个方法没有返回值。SQLite会自动为主键列创建索引。在这种情况下,第一次创建数据库时创建了表和索引。可以使用execSQL()方法执行INSERT、UPDATE、DELETE等语句来更新表的数据,还可以使用SQLiteDatabase对象的insert()、update()和delete()方法。

5、在update()方法中有四个参数,分别是表名,表示列名和值的ContentValues对象,可选的WHERE条件和可选的填充WHERE语句的字符串,这些字符串会替换WHERE条件中的”?”标记。

二、具体使用代码看使用到的方法

1、对SQLiteOpenHelper的实现

public class SQDBLiteHelper extends SQLiteOpenHelper {

    private static final String DATABASE_NAME="test.db";
    private static final int DATABASE_VERSION = 1;

    public SQDBLiteHelper(Context context){
        super(context,DATABASE_NAME,null,DATABASE_VERSION);
    }
    //数据库第一次被创建时就会被onCreate调用
    @Override
    public void onCreate(SQLiteDatabase db) {
    }

    //数据库升级
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
    //数据库降级  
    @Override
    public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
}

2、进行在数据库中读取数据

 Cursor c = db.rawQuery("SELECT * FROM person",null);
 while (c.moveToNext()){
   ...   
 }
 c.close();

3、插入数据

db.insert("person",null,values);

4、删除数据

db.delete("person", "age >= ?", new String[]{String.valueOf(person.age)});

5、修改数据

ContentValues cv = new ContentValues();
        cv.put("age",person.age);
        db.update("person", cv, "name = ?", new String[]{person.name});

以上 几点对于数据的增删改查。

三、这里就是代码实例

1、在demo中有SQLite数据存储,Sharedprferences数据的储存,等。

2、下载DEMO

猜你喜欢

转载自blog.csdn.net/generallizhong/article/details/83010249
今日推荐