java - 新/更新对象的混合列表 : how to efficiently store them to the DB?

标签 java mysql json database web-services

好的,假设我有一个包含以下类型对象的列表:

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

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

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

这样的对象列表将作为 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/

相关文章:

android - 应用程序在 httprequest 上频繁崩溃

json - 如何使用 `request` 模块传递变量

java - 如何在Spring Data中进行Mongo聚合查询?

java - 制作带有部分的编辑器页面不起作用(eclipse,java)

java - 在 Activity 更新时更新 tabpager fragment 数据

java - 如何在程序启动时验证 Java 版本?

java - Mysql无法将具有特定字符的值存储到数据库

mysql - 如何在mysql中获取以毫秒或微秒为单位的加载时间

java - 在 java 中使用 gson 以 pretty-print 格式创建 json 文件 I/O?

jquery - 使用 JQuery 填充表格