插入到数据库并查找出来

 一.创建数据库

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);
    }
};


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当我们需要从一个大型的 MySQL 数据库表中,根据一定的筛选条件筛选出一个结果集时,我们可能需要将这个结果集插入到一个新的表中,以便后续的操作中能够更便捷地使用。 要实现这一功能,我们可以采用以下的步骤: 首先,我们需要编写 SQL 语句,来查询目标表并筛选出需要插入到新表的数据。这个 SQL 语句需要根据实际的需求来定制,例如用 WHERE 子句筛选出特定的行,用 SELECT 子句指定需要输出的列,等等。需要注意的是,这个 SQL 语句需要确保查询结果集的列数和列名与目标表的列数和列名一致,否则插入操作很可能会失败。 接着,我们需要在 MySQL 中创建一个新的表,用来保存以上查询结果的数据。这个新表需要与查询结果集的列数和列名一致,可以使用 CREATE TABLE 语句来创建。 最后,我们可以使用 INSERT INTO 语句,将查询结果集中的数据插入到新表中。INSERT INTO 语句的语法如下: INSERT INTO 新表名 (列1, 列2, 列3, ...) SELECT 列1, 列2, 列3, ... FROM 原表名 WHERE ...; 需要注意的是,这个语句中需要确保目标表和原表中列的顺序、类型和数量一致,否则插入操作也有可能失败。 通过上述的步骤,我们可以实现将 MySQL 查询结果插入到新表的操作。需要注意的是,由于使用了 SELECT 子句,这个操作可能会对系统资源造成一定的负担,特别是当原表非常大、查询条件过于宽泛时需要格外小心。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值