【问题标题】:get Identity from sql batch insert via jdbctemplate.batchupdate通过 jdbctemplate.batchupdate 从 sql 批量插入中获取身份
【发布时间】:2014-10-07 15:30:26
【问题描述】:

我想从org.springframework.jdbc.core.JdbcTemplate.batchUpdate 获取插入/更新的行 ID(PrimaryKey)

有没有什么方法可以使用像this 这样的 KeyHolder 来获取插入/更新行 ID。

【问题讨论】:

    标签: sql spring spring-jdbc


    【解决方案1】:

    没有,可能是因为 JDBC 规范不要求 getGeneratedKeysexecuteBatch() 一起使用,如 here 所述。如果您的驱动程序确实支持它,您将需要使用普通的旧 JDBC 来访问结果集。代码是这样的:

    PreparedStatement ps = conn.prepareStatement("insert into ... values (?)", Statement.RETURN_GENERATED_KEYS);
    ps.setXXX(1, value1);
    ps.addBatch();
    ps.setXXX(1, value2);
    ps.addBatch();
    ps.executeUpdate();
    ResultSet rs = ps.getGeneratedKeys();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-21
      • 1970-01-01
      • 2012-01-16
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多