数据库缓存数据

移动开发 waitig 436℃ 百度已收录 0评论

大家都知道一般的App在没有网的情况下已进入他都是可以展示数据的,那么他用到的就是数据的缓存

那么咱们要用的就是数据库进行缓存

那么就要创建一个数据库

public class MyHelper extends SQLiteOpenHelper {
// 保留一个即可
public MyHelper(Context context) {
super(context, “bawei.db”, null, 1);
}

@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
    //创建表
    sqLiteDatabase.execSQL("create table jsoncache(id integer primary key autoincrement,json text not null,url text not null)");

}

@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

}

}

下面就是要缓存了
他需要对数据库进行操作

public class JsonDao {

private MyHelper myHelper;

public JsonDao(Context context) {

    myHelper = new MyHelper(context);
}

/**
 * 插入数据的操作
 */
public void insertJson(String json,String url){

    SQLiteDatabase database = myHelper.getWritableDatabase();
    //现根据url删除json
    database.delete("jsoncache","url = ?",new String[]{url});

    //再去添加
    ContentValues values = new ContentValues();
    values.put("json",json);
    values.put("url",url);

    database.insert("jsoncache",null,values);

    //关闭
    database.close();
}


/**
 * 查询数据库的操作....根据传入url获取存的json字符串
 */
public String getJson(String url){

    SQLiteDatabase writableDatabase = myHelper.getWritableDatabase();

    Cursor cursor = writableDatabase.query("jsoncache", new String[]{"json"}, "url = ?", new String[]{url}, null, null, null);

    if (cursor.moveToNext()){
        String json = cursor.getString(cursor.getColumnIndex("json"));

        return json;
    }

    return null;
}

}

剩下的就是在Acvitity或者在Fragment中写代码了

就是要在加载数据的方法前面进行缓存

JsonDao jsonDao= new JsonDao(getContext());
//1.先读取数据库中存的数据….有数据,解析展示….无数据,网络获取数据
String json = jsonDao.getJson(“url”);
if (json != null){
//解析 显示

        Gson gson = new Gson();

        DataDataBean dataDataBean = gson.fromJson(json, DataDataBean.class);

        //往后面添加...
        list.addAll(dataDataBean.getResults());

        //设置适配器
        setAdapter();

    }else {
        //1.设置listView的适配器
        getDataFromNet();
    }

本文由【waitig】发表在等英博客
本文固定链接:数据库缓存数据
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)