gpt4 book ai didi

java - 如何在插入记录时使用 spring jdbctemplate batchupdate 覆盖?

转载 作者:行者123 更新时间:2023-11-29 07:33:08 25 4
gpt4 key购买 nike

需要插入记录使用spring jdbctemplate批量更新。插入时如果发现重复记录,则需要更新记录否则插入。我怎么做?下面是我的代码。

注意:没有包含异常处理。

 result = jdbcTemplate.batchUpdate(
"insert ignore xxx set yy = ?, zz = ? where aa = ?",
new BatchPreparedStatementSetter() {
public void setValues(PreparedStatement ps, int i) throws SQLException {
ps.setDouble(1, Double.parseDouble(new JSONObject(jsonArray.get(i).toString()).get("aa").toString()));
ps.setDouble(2, Double.parseDouble(new JSONObject(jsonArray.get(i).toString()).get("bb").toString()));
ps.setString(3, new JSONObject(jsonArray.get(i).toString()).get("cc").toString());
}

public int getBatchSize() {
return jsonArray.length();
}
} );

}

最佳答案

您可以使用以下选项之一:

  1. 正如@fbokovikov 所说,您可以使用merge sql 命令。
  2. 您可以检查记录是否存在。在性能方面,您可以先从数据库中获取所有键,然后使用这些键生成正确的插入和更新查询。在这种情况下,如果您的表中有大数据,您应该意识到性能不佳。
  3. 您可以先删除记录,然后再全部插入。这在性能上非常糟糕。 :-)

希望对你有帮助

关于java - 如何在插入记录时使用 spring jdbctemplate batchupdate 覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50188168/

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