【问题标题】:Insert Multiple row with BeanPropertySqlParameterSource and sequence to generate ID使用 BeanPropertySqlParameterSource 和序列插入多行以生成 ID
【发布时间】:2014-05-13 10:43:23
【问题描述】:

我相信这个问题之前一定在论坛上被问过。但我找不到它。如果您发现它重复,请将我重定向到特定线程。

我正在使用带有 BeanPropertySqlParameterSource 的 Spring JDBC 在 oracle DB 中插入记录。在插入记录之前,会调用一个序列来获取主键的值。

这就是我的方法的样子

public void insertTransaction(InTransaction transaction) {
        Long txnId = getNextId(TXN_SEQUENCE);
        transaction.setTxnId(txnId);
        jdbcTemplate.update(getQuery(TXN_INSERT_QUERY),
                new BeanPropertySqlParameterSource(transaction));
}

getQuery 方法从文件中获取查询字符串,getNextID 方法调用序列上的 NEXTVAL。

我需要修改此方法,以便可以将多行插入在一起。我查看了 batchUpdate 方法,但这需要将包括主键在内的每一列的值填充到要批量插入的所有对象中。在调用 batchUpdate 之前,我无法知道如何调用所有行的序列?谁能帮忙。

【问题讨论】:

    标签: spring oracle jdbc


    【解决方案1】:

    如果您创建一个与批量上传大小相同的数组会怎样。然后通过调用 seq nextval 填充这个数组,并在 batchUpdate 中使用这个误入歧途。 或者,如果 batchupdate 可以单次停留整行,那么您可以创建一个二维数组。填充它将 nextval 并从文件中查询字符串。然后将其传递给批量函数。这样您就可以在单个事务中插入多种类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-30
      • 1970-01-01
      • 2013-10-06
      • 1970-01-01
      • 2011-06-04
      • 1970-01-01
      相关资源
      最近更新 更多