如何在使用jdbc模板批量更新插入或更新记录后获取自动生成的主键?

时间:2018-06-11 16:29:58

标签: java spring jdbc

我使用spring JDBC模板在Oracle中插入数据,我有一个要求是我必须使用spring JDBC模板批量更新批量插入,并且我想要自动生成的主键和那个键我需要传递另一种方法,但我无法使用批量更新获得自动生成的主要方法。

你能提供解决方案吗?

1 个答案:

答案 0 :(得分:0)

假设你在oracle中有自动生成的PK,
请参阅示例代码:

final String insertNewFieldSql = Config.getSqlProperty("insert_new_field_record");      
    GeneratedKeyHolder holder = new GeneratedKeyHolder();
    MapSqlParameterSource parameters = null;

    for (ParsedData field : fields) {

            parameters = new MapSqlParameterSource();
            parameters.addValue("FIELD_1",parsedEmail.getDbRecordId())
                    .addValue("FIELD_2",field.getName());

            namedParameterJdbcTemplate.update( insertNewFieldSql, parameters, holder, new String[] {"PK_FIELD_ID" } );

            Long newFieldKey = holder.getKey().longValue();
            logger.log(Level.FINEST, "row was added: " + newFieldKey);
            }