好的,假设我有一个包含以下类型对象的列表
:
已存储在数据库中的对象(具有相同的 PK), 与数据库中的相同,未修改
已存储在数据库中的对象(具有相同的 PK),并且相对于存储的对象修改,因此需要更新
<数据库中尚不存在且即将保存的对象
这样的对象列表将作为 JSON
发送到 Web 服务,并且 Web 服务现在必须与数据库通信,并决定要存储、更新或忽略哪些对象。
我的问题是如何有效地做到这一点?
一种想法是迭代列表,针对每个对象的 PK 向数据库进行查询,检查数据库中的对象是否不存在、相同或已修改。然后根据该信息选择操作。 这种方法让我困扰的是对数据库的大量查询,只是为了保存一些对象。如果 100 人中只有 1 人真的应该被拯救怎么办?效率太低了。
有更好的方法吗?
最佳答案
您可以将整个列表发送到数据库(MYSQL)并执行更新插入:
INSERT ... ON DUPLICATE KEY UPDATE
关于java - 新/更新对象的混合列表 : how to efficiently store them to the DB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39307634/