在Android中导入DB的最佳方法
我需要一些关于将数据从服务器导入本地设备的良好实践的建议。数据量不是很大~1-3 MB,因此,我必须在以下两者之间进行选择:在Android中导入DB的最佳方法,android,json,sqlite,csv,Android,Json,Sqlite,Csv,我需要一些关于将数据从服务器导入本地设备的良好实践的建议。数据量不是很大~1-3 MB,因此,我必须在以下两者之间进行选择: 接收json-解析它,为简单起见使用GSON lib,并将数据插入本地数据库 以cvs格式接收整个数据库,然后填充我的数据库,如所述 或者直接从服务器端接收整个数据库,并像本地数据库一样使用它 我知道,每种方法都有效,但如果有人能给出一些参数,我们将不胜感激。您可以在应用程序中提供一个已填充的db(将其放入资产文件夹) 然后,您所要做的就是使用时间戳字段或任何sql请求在
我知道,每种方法都有效,但如果有人能给出一些参数,我们将不胜感激。您可以在应用程序中提供一个已填充的db(将其放入资产文件夹) 然后,您所要做的就是使用时间戳字段或任何sql请求在应用程序上更新字段,以查找数据库中不存在的过期字段或条目
通过这种方式,您可以避免在应用程序中进行无用的过程来填充数据库,并且您可以将查询限制在服务器上,在指定的时间之后针对数据,这次是数据库的最后一次更新。对我有效的是我的php文件正在从sql读取数据 所以我使用缓冲区阅读器来读取这些文件上的内容,它既快速又简单 为我工作
public String getInternetData() throws Exception{
BufferedReader in=null;
String data=null;
try{
HttpClient client=new DefaultHttpClient();
URI website=new URI("http://address of that paticular page.php");
HttpGet request=new HttpGet();
request.setURI(website);
HttpResponse response=client.execute(request);
HttpEntity ent=response.getEntity();
String dt=EntityUtils.toString(ent);
data=dt;
//in=new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
}catch(Exception e){
}
return data;
tl;博士强> 我将保留第一个解决方案 参数 解决方案1 JSON是一个标准!您可以使用任何您想要的库,如果您有任何问题,甚至可以从一个库更改到另一个库!此外,JSON是一种轻量级格式 此外,通过这种方式传输数据,您将能够存储您想要的数据:使用相同的方案或另一个方案;您将能够删除无用的数据 唯一的问题是:您无法验证您收到的数据是否与您所想的一样。您必须在手机上进行验证 解决方案2 我认为这个解决方案和JSON的解决方案是一样的,但是使用了一种非常难看的格式。。。我绝对不会用它 解决方案3 您将通过网络发送一个二进制文件。如果发生了不好的事情,在尝试打开数据库并看到它失败之前,您将无法知道它
此外,您还必须遵守服务器决定的DB方案。我认为最好让你的设备自己处理DB方案。服务器负责传输格式正确的数据。然后,您的设备负责以它想要的方式存储它们。选择这种方法时,您可能需要查看Jeff Gilfelt的SqliteAssetPer。我写了一个关于它的小教程:如果应用程序和服务器中的数据可以单独修改,那么您需要编写某种数据同步逻辑。