网络数据添加数据库
来源:互联网 发布:div调用js变量 编辑:程序博客网 时间:2024/04/29 08:36
首先,,创建数据库//////////
db.execSQL("create table news(id integer primary key autoincrement,url text not null,jsonstr text not null)");
//创建dao包
public class UserDao {
private final SQLiteDatabase db;
public UserDao(Context context) {
MyHerlper herlper = new MyHerlper(context);
db = herlper.getWritableDatabase();
}
public void insert(String url,String jsonstr){
ContentValues values=new ContentValues();
values.put("url",url);
values.put("jsonstr",jsonstr);
db.insert("news",null,values);
}
//根据url去查询数据-只会得到一条记录
public String queryData(String url){
String data="";
Cursor cursor=db.query("news",null," url=?",new String[]{url},null,null,null);
while (cursor.moveToNext()){
data= cursor.getString(cursor.getColumnIndex("jsonstr"));
}
return data;
}}
//在acvity里面调取添加查询方法
public class MainActivity extends AppCompatActivity {
List<NewsResult.DataBean> list=new ArrayList<>();
private XListView xlv;
private int pageIndex=1;
private int type=1;
private String url="http://ic.snssdk.com/2/article/v25/stream/?category=news_tech&count=20&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1457695555&loc_mode=5&lac=4527&cid=28883&iid=3835029558&device_id=12211880440&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=iToolsAVM&os_api="+pageIndex;
private Handler handler =new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (type==1){
xlv.stopRefresh();
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat format=new SimpleDateFormat("yyyy_MM_dd HH:mm:ss");
String s = format.format(date);
xlv.setRefreshTime(s);
}
if (type==2){
xlv.stopLoadMore();
}
}
};
private MyAdapter adapter;
private UserDao dao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
xlv = (XListView) findViewById(R.id.xlv);
xlv.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {
type=1;
pageIndex=1;
initData();
}
@Override
public void onLoadMore() {
type=2;
pageIndex++;
initData();
}
});
initData();
//1.根据url先从数据库中查询数据,有数据则,显示,无数据,则从网络获取
dao = new UserDao(this);
String data = dao.queryData(url);
if (!"".equals(data)){
Gson gson=new Gson();
NewsResult
result = gson.fromJson(data, NewsResult.class);
list.addAll(result.getData());
setMyAdapter();
}else {
initData();
} }
public void initData(){
//首先判断有没有连接网络
boolean result= TypeUtils.isConn(this);
if(result){
//进行数据请求
class MyTask extends AsyncTask<String,Void,String>{
@Override
protected String doInBackground(String... params) {
try {
URL url = new URL(params[0]);
HttpURLConnection connection = (HttpURLConnection)
url.openConnection();
connection.setRequestMethod("GET");
connection.setReadTimeout(2000);
connection.setConnectTimeout(2000);
if (connection.getResponseCode()==200){
InputStream stream = connection.getInputStream();
String s = StreamToString.StreamTostr(stream);
return s;
} } catch (IOException e) {
e.printStackTrace();
} return null;
} @Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
//添加到数据库
dao.insert(url,s);
Gson gson=new Gson();
NewsResult result = gson.fromJson(s, NewsResult.class);
if (type==1){
list.clear();
list.addAll(result.getData());
}else {
list.addAll(result.getData());
}
setMyAdapter();
handler.sendEmptyMessageDelayed(1,1000);
}
}
new MyTask().execute(url);
}else{
handler.sendEmptyMessageDelayed(0,1000);
TypeUtils.openNetSettingDg(MainActivity.this);
//Toast.makeText(MainActivity.this,"无网络",Toast.LENGTH_SHORT).show(); }}
public void setMyAdapter(){
if (adapter==null ){
adapter = new MyAdapter(this,list);
xlv.setAdapter(adapter);
}else {
adapter.notifyDataSetChanged();
}
}}
- 网络数据添加数据库
- 解析网络数据添加数据库
- 从网络请求数据添加到数据库
- GreenDao + 请求网络数据添加到数据库 + 新增+删除 +查询
- thinkPHP5 数据库 添加数据
- AsynTask异步任务+HttpURLConnection网络请求+Gson解析数据+添加到sqlite数据库展示数据
- 网络数据连接数据库
- 新建数据库-添加数据-添加约束
- 向数据库批量添加数据
- 创建数据库并添加数据
- 向数据库中添加数据
- dTree从数据库添加数据
- php添加数据到数据库
- 循环向数据库添加数据
- select 添加数据库中数据
- Xutils创建数据库添加数据
- JDBC数据库之添加数据
- JS(javascript)操作数据库->添加数据
- test
- Android Studio gradle配置详解
- Android中的PullToRefrensh上拉加载,下拉刷新
- QPS 和并发:如何衡量服务器端性能
- 选中按钮删除
- 网络数据添加数据库
- Open-falcon安装(Open-Falcon超级详细安装步骤)
- 设计模式知识连载(24)---组合模式:
- 区块链养猫,区块链的又一现象级应用
- android WebView加载进度条
- SQL 连接(JOIN)
- 数据结构实验之查找五:平方之哈希表
- JMS学习笔记(一)——JMS简介安装ActiveMQ
- 用css实现svg描边的动画效果