缓存数据库

来源:互联网 发布:日本对外贸易数据 编辑:程序博客网 时间:2024/05/22 13:34

数据库缓存,,,,,当没有网络时,,,,,拿取数据库


内容,,,,,当刷新数据时,,,,,清空数据库内容,,,,


从新添加;;;;;;


创建数据库类方法


package com.example.administrator.xie.dao;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * Created by Administrator on 2017/10/25.
 */

public class MyHelper extends SQLiteOpenHelper {
    public MyHelper(Context context) {
        super(context, "sxk.db",null,1);
    }

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

    }

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

    }
}



sql语句方法Dao类


package com.example.administrator.xie.dao;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

/**
 * Created by Administrator on 2017/10/25.
 */

public class Dao {
    MyHelper myHelper;
    Context context;

    public Dao(Context context) {
        this.myHelper = new MyHelper(context);
    }
    /**
     * 插入数据的操作
     */
    public void insertJson(String json,String url){

        SQLiteDatabase database = myHelper.getWritableDatabase();
        //现根据url删除json
        //database.delete("user","url = ?",new String[]{url});
        database.execSQL("delete from user");
        //再去添加
        /*ContentValues values = new ContentValues();
        values.put("json",json);
        values.put("url",url);
        database.insert("user",null,values);*/
        database.execSQL("insert into user (json,url)values(?,?)",new Object[]{json,url});
        //关闭
        database.close();
    }
    /**
     * 查询数据库的操作....根据传入url获取存的json字符串
     */
    public String query(String url){
        SQLiteDatabase writableDatabase = myHelper.getWritableDatabase();
        //Cursor cursor = writableDatabase.query("user", new String[]{"json"}, "url = ?", new String[]{url}, null, null, null);
        Cursor cursor = writableDatabase.rawQuery("select *from user where url=?", new String[]{url});
        if (cursor.moveToNext()){
            String json = cursor.getString(cursor.getColumnIndex("json"));
            return json;
        }
        return null;
    }
}




Fragment类添加和查询方法

package com.example.administrator.xie.fragment;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;

import com.example.administrator.xie.R;
import com.example.administrator.xie.adapter.MyAdapter;
import com.example.administrator.xie.bean.Data;
import com.example.administrator.xie.dao.Dao;
import com.example.administrator.xie.util.GetInterFace;
import com.example.administrator.xie.util.NetGetData;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.ILoadingLayout;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * Created by Administrator on 2017/10/25.
 */

public class Fragment1_my1 extends Fragment {

    private PullToRefreshListView refresh_list_view;
    List<Data.ResultBean.ListBean> list = new ArrayList<>();
    private MyAdapter myAdapter;
    private ILoadingLayout startLabels;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.layout_fragment_my1, container, false);
        refresh_list_view = (PullToRefreshListView) view.findViewById(R.id.refresh_list_view);
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        Dao dao = new Dao(getActivity());
        String query = dao.query("http://v.juhe.cn/weixin/query?key=f11366bfede82a3290d61093fd9c1de6");
        if (query!=null){
            Gson gson = new Gson();
            Data data = gson.fromJson(query, Data.class);
            list.addAll(data.getResult().getList());
            setadapter();
        }else{
            getinfo();
        }

        /*设置pullToRefreshListView的刷新模式,BOTH代表支持上拉和下拉,PULL_FROM_END代表上拉,PULL_FROM_START代表下拉 */
        refresh_list_view.setMode(PullToRefreshBase.Mode.BOTH);
        startLabels = refresh_list_view
                .getLoadingLayoutProxy(true, false);
        startLabels.setPullLabel("下拉刷新");
        startLabels.setRefreshingLabel("正在拉");
        startLabels.setReleaseLabel("放开刷新");
        ILoadingLayout endLabels = refresh_list_view.getLoadingLayoutProxy(
                false, true);
        endLabels.setPullLabel("上拉刷新");
        endLabels.setRefreshingLabel("正在载入...");
        endLabels.setReleaseLabel("放开刷新...");
        refresh_list_view.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                String path = "http://v.juhe.cn/weixin/query?key=f11366bfede82a3290d61093fd9c1de6";
                NetGetData.getinfo(getActivity(), path, new GetInterFace() {
                    @Override
                    public void go(String json) {
                        Log.d("--","数据"+json);
                        Gson gson = new Gson();
                        Data data = gson.fromJson(json, Data.class);
                        list.addAll(0,data.getResult().getList());
                        setadapter();
                        SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日    HH:mm:ss");
                        Date curDate    =   new Date(System.currentTimeMillis());//获取当前时间
                        String    str    =    formatter.format(curDate);
                        startLabels.setLastUpdatedLabel(str);
                        refresh_list_view.onRefreshComplete();
                    }
                });
            }
            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                getinfo();
            }
        });
    }



    private void getinfo() {
        String path = "http://v.juhe.cn/weixin/query?key=f11366bfede82a3290d61093fd9c1de6";
        NetGetData.getinfo(getActivity(), path, new GetInterFace() {
            @Override
            public void go(String json) {
                Dao dao = new Dao(getActivity());
                dao.insertJson(json,"http://v.juhe.cn/weixin/query?key=f11366bfede82a3290d61093fd9c1de6");
                Log.d("--","数据"+json);
                Gson gson = new Gson();
                Data data = gson.fromJson(json, Data.class);
                list.addAll(data.getResult().getList());
                setadapter();
                refresh_list_view.onRefreshComplete();
            }
        });
    }
    private void setadapter() {
        if (myAdapter==null) {
            myAdapter = new MyAdapter(list, getActivity());
            refresh_list_view.setAdapter(myAdapter);
        }
        else{
            myAdapter.notifyDataSetChanged();
        }
    }
}



原创粉丝点击