新/更新对象的混合列表:如何有效地将它们存储到数据库中?

时间:2016-09-03 13:49:06

标签: java mysql json database web-services

好的,我们假设我的list包含以下类型的对象:

  1. 已存储在数据库中的对象(具有相同的PK), 并且与数据库中的相同,未修改

  2. 已存储在数据库中的对象(具有相同的PK),并且对于存储的对象已修改,因此需要更新

  3. 数据库中尚未存在且即将保存的对象

  4. 此类对象列表作为JSON发送到Web服务,Web服务现在必须与数据库通信,并决定要存储,更新或忽略的对象。

    我的问题是如何有效地做到这一点?

    一个想法是迭代列表,并且每个对象的PK都对数据库进行查询,并检查数据库中的对象是否不存在,相同或已修改。然后根据该信息选择操作。 困扰我的方法是对数据库进行大量查询,只是为了保存一些对象。如果真的只能保存100个中的1个怎么办?这是无效的。

    有没有更好的方法呢?

1 个答案:

答案 0 :(得分:0)

您可以将整个列表发送到DB(MYSQL)并执行upsert:

INSERT ... ON DUPLICATE KEY UPDATE