java重复地从对象列表更新数据库中的记录
我有一个清单,上面写着:
public class Foo {
public String title;
public String subject;
}
例如:List<Foo> mFoo = new ArrayList<Foo>();
我的数据库中有一个同名、属性相同的表
这个列表有大约1000个对象。第一次处理此列表时,所有对象都将存储在数据库中
下一次,列表中的一些对象将更改,或者一些新对象也将添加它。问题就在这里
如何更新并将新对象添加到数据库中,以避免将数据库中存储的所有对象加载到其他列表中,然后比较这两个列表
是否存在某种方式可以最大限度地减少对数据库的访问?(我不想每次加载1000个对象)
编辑1:扩展信息
我从解析外部源数据(html代码)的方法中获取List<Foo> mFoo
。然后我将对象作为Foo保存在数据库中
当我保存一个对象时,我会得到一个id
public class Foo {
private String id;
public String title;
public String subject;
}
每次执行该方法时,我都会得到一个列表,其中可能包含数据库中已经存在的对象Foo,但我没有它的id,因为它们是新实例
# 1 楼答案
我建议使用一些标志,将实例标记为肮脏:
编辑1
正如d'alar'cop指出的,你似乎别无选择,只能根据标题和/或主题查询数据库
但是根据你的标签,你正在使用sqlite。如果可以控制tabledefinition,可以在create语句中查看带有唯一约束的ON CONFLICT [REPLACE|IGNORE]子句。这样你就可以插入你的列表,让数据库完成它的工作
致以最良好的祝愿, 山姆