gpt4 book ai didi

java - 重复从对象列表更新数据库中的记录

转载 作者:太空狗 更新时间:2023-10-29 14:18:46 24 4
gpt4 key购买 nike

我有一个包含这些对象的列表:

public class Foo {
public String title;
public String subject;
}

例如:List<Foo> mFoo = new ArrayList<Foo>();

我的数据库中有一个具有相同名称和相同属性的表。

此列表包含大约 1000 个对象。第一次处理此列表时,所有对象将存储在数据库中。

下一次,List中的一些对象会发生变化,或者一些新的对象也会添加它。问题就在这里。

我如何更新新对象并将其添加到数据库,以避免将数据库中所有存储的对象加载到其他列表,然后再比较两个列表?

是否存在某种方式可以最大限度地减少对数据库的访问? (我不想每次加载 1000 个对象)

编辑 1:扩展信息

我获得了 List<Foo> mFoo来自解析外部源数据(html 代码)的方法。然后我将对象作为 Foo 保存在数据库中。

当我保存一个对象时,我得到一个 id;

public class Foo {
private String id;
public String title;
public String subject;
}

每次执行该方法时,我都会得到一个列表,其中可能包含数据库中已存在的对象 Foo,但我没有它的 ID,因为它们是新实例。

最佳答案

我建议使用一些标志来将实例标记为脏:

public class Foo {
private String title;
private String subject;
private boolean isDirty=true;


public void onPersist(){
this.isDirty=false;
}

public String setTitle(String title){
this.isDirty=true;
this.title=title;
}

//more setters und getters

}

编辑 1

正如 d'alar'cop 所指出的,您似乎别无选择,只能根据标题和/或主题查询数据库。

但是根据您的标签,您正在使用 sqlite。如果您可以控制表定义,则可以查看 ON CONFLICT [REPLACE|IGNORE] create 语句中具有唯一约束的子句。这样你应该能够插入你的列表并让 do 数据库完成它的工作。

最好的问候,山姆

关于java - 重复从对象列表更新数据库中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18942375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com