我正在使用SugarORM用于Sqllite数据库,并且此数据库中的数据每10分钟从服务器保存一次,这是通过使用该服务完成的。现在,在观察保存在此数据库中的logcat数据中保存的数据时显示错误。 Logcat显示如下
I / Sugar:mobstat已保存:255322
我/ Sugar:mobstat已保存:255323
我/糖:mobstat已保存:255117
我/糖:mobstat已保存: 255118
到达323后再次显示为117,依此类推。这里有什么问题。
private void parseJSONresponse(String s)
{
try
{
JSONArray json = new JSONArray(s);
for (int i = 0; i < json.length(); i++)
{
JSONObject e = json.getJSONObject(i);
musers.add(new mobstat(e.getString("name"), e.getString("status"),e.getLong("time")));
SugarRecord.saveInTx(musers);
}
} catch (JSONException e)
{
e.printStackTrace();
}
}
Mobstat sqllite表:
import com.orm.SugarRecord;
import com.orm.dsl.Unique;
class mobstat extends SugarRecord {
@Unique
String name;
String status;
long stime;
public mobstat(){ }
mobstat(String name, String status, long stime) {
this.name = name;
this.status = status;
this.stime = stime;
}
}
mobstat是我的sqllite数据库。此代码每10秒运行一次以更新新数据。我没有检查数据是否已经存在,Sugar ORM会覆盖已经存在的值。这是正确的方法吗?请帮忙。
答案 0 :(得分:0)
您是否检查过Sugar是否真的覆盖了您的数据,还是根据Sugar的日志确定了它?
每次拨打下一行时:
SugarRecord.saveInTx(musers);
您再次保存musers
的整个列表。
您向我们展示的日志是Sugar
的日志,这是您不应该担心或看到的。我认为您的代码不会覆盖数据库中的现有值,因为您只将对象保存到Sugar
。