2

我正在使用 Spring 的 JDBC 支持在 Oracle 数据库上运行 SQL 查询和更新。我想插入一行,然后获取分配给它的键(使用 Oracle 序列)。在普通的 JDBC 代码中,我会包含一个 RETURNING INTO 子句,然后注册一个输出参数(这里有很好的描述

但是,我只想使用 Spring 来处理我所有的 JDBC 工作。对于非插入 SQL 语句,我目前正在使用 MapSqlParameterSource 对象并注册我的所有输入参数。我也可以注册这样的输出参数并将其返回给我吗?我查看了 Spring 文档的第 11 章部分,如果我使用存储过程,我发现支持输出参数,但如果可能的话,我想避免这样做。谢谢。

4

2 回答 2

1

我不认为 Spring JDBC 支持 API 提供对 OUT 参数的显式支持,因此您可能需要退后一步并使用以下提供的更通用的查询 API JdbcTemplate

Object execute(PreparedStatementCreator psc, PreparedStatementCallback action)

这使您可以在 Spring 管理的连接范围内执行任意 JDBC 操作,并且PrepatedStatement. 不利的一面是,诸如此类的事情的处理和整理ResultSets成为您的问题。

于 2009-08-18T15:36:05.057 回答
0

查看此代码 - 它可能会执行您想要的操作,但不确定 Oracle 是否支持此语法。

getReturnedGeneratedKeys() Spring JDBC 示例

于 2009-08-18T17:44:52.020 回答