插入到数据库并查找出来

 一.创建数据库

public MyHelper(Context context) {
    super(context, "myab", null, 1);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
  sqLiteDatabase.execSQL("create table dbcache(id integer primary key autoincrement,url text,jsondata text)");
}

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

}

建Dao类

public MyHelper helper;
public DBDao(Context context){
    helper=new MyHelper(context);
}
public void insertData(String url,String data){
    SQLiteDatabase db = helper.getWritableDatabase();
    db.delete("dbcache","url=?",new String[]{url});
    ContentValues contentValues = new ContentValues();
    contentValues.put("url",url);
    contentValues.put("jsondata",data);
    long rowid = db.insert("dbcache", null, contentValues);
    Log.d("zzz","新插入数据rowid:"+rowid);

}
public String queryData(String url){
    Log.d("zzz","---正在查询数据---");
    String data="";
    SQLiteDatabase db = helper.getWritableDatabase();
    Cursor cursor = db.query("dbcache", null, "url=?", new String[]{url}, null, null, null);
    while (cursor.moveToNext()){
        data=cursor.getString(cursor.getColumnIndex("jsondata"));
    }
    return data;
}
 
private DBDao dbdao;
private void requestNetData() {
    if (NetStateUtils.isConn(this)) {
        new Thread() {
            @Override
            public void run() {
                try {
                    URL ur1 = new URL(url);
                    HttpURLConnection urlConnection = (HttpURLConnection) ur1.openConnection();
                    urlConnection.setReadTimeout(5000);
                    urlConnection.setRequestMethod("GET");
                    urlConnection.setConnectTimeout(5000);
                    int code = urlConnection.getResponseCode();
                    if (code == 200) {
                        InputStream stream = urlConnection.getInputStream();
                        String s = InputStreamToString(stream);
                        dbdao.insertData(url, s);
                        Gson gson = new Gson();
                        Result result = gson.fromJson(s, Result.class);
                        List<Result.NewslistBean> newslist = result.getNewslist();
                        Message msg = Message.obtain();
                        msg.obj = newslist;
                        handler.sendMessage(msg);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }.start();
    } else {
        Log.d("zzz","---无网状态,查询数据库中的数据---");
        Toast.makeText(this,"现在没有网络,请稍后重试!",Toast.LENGTH_SHORT).show();
        String s = dbdao.queryData(url);
        List<Result.NewslistBean> newslistBeans = asyncJson(s);
        showData(newslistBeans);
    }
}
private void showData(List<Result.NewslistBean> lists) {
    if(operType==1){
        datas.clear();
    }
    datas.addAll(lists);
    setAdapter();
    psv.onRefreshComplete();
}
public List<Result.NewslistBean> asyncJson(String json){
        Gson gson = new Gson();
        Result result = gson.fromJson(json, Result.class);
        List<Result.NewslistBean> newslist = result.getNewslist();
        return newslist;
}
private Handler handler=new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        List<Result.NewslistBean> lists= (List<Result.NewslistBean>) msg.obj;
       showData(lists);
    }
};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值