【发布时间】:2018-10-11 03:43:47
【问题描述】:
我有一个名为 cv 的 ContentValues[] 数组,它进入我的 SQLite 数据库。为了保持简单,我的数据库有这 3 列(每行的自动增量 ID、日期和湿度。)数据库有 3 行。这是添加到单行的数据示例。
ContentValues cv = new ContentValues();
cv.put(WeatherContract.WeatherData.COLUMN_DAY_OF_WEEK, day);
cv.put(WeatherContract.WeatherData.COLUMN_HUMIDITY, humidity);
这个循环 3 次,每个 ContentValue 都被放入我的 ContentValue 数组中,然后批量插入到我的数据库中。
我有一个作业,它每五分钟从服务器获取新数据。所以我需要这些新数据来替换旧数据并且在语法上遇到问题。我得到了包含新数据的 ContentValues[] jsonResults 的点,然后有点困惑。如何更新表中的所有行?是否需要循环遍历 contentResolvers 更新方法:
for (int i =0; i<jsonResults.length;i++){
context.getContentResolver().update(weatherQueryUri,jsonResults[i],null,null);
}
如果是这样,我在 where 和 selectionArgs 子句中放置什么而不是 null?还是我让它保持为空?
通过 ContentProvider 后,这是我实际插入的数据库方法:
public void updateRow(ContentValues weatherValue,String where, String selection){
mDb.update(WeatherContract.WeatherData.TABLE_NAME,weatherValue,null,null);
}
谢谢!
【问题讨论】:
标签: android sqlite android-contentprovider