使用Spring的JDBC支持来获取输出参数

时间:2009-08-18 14:31:22

标签: java sql spring jdbc output-parameter

我正在使用Spring的JDBC支持在Oracle数据库上运行SQL查询和更新。我想插入一行,然后获取它所分配的密钥(使用Oracle序列)。在普通的JDBC代码中,我将包含一个RETURNING INTO子句,然后注册一个输出参数(well described here

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

2 个答案:

答案 0 :(得分:1)

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

Object execute(PreparedStatementCreator psc, PreparedStatementCallback action)

这使您可以在Spring管理的连接和PrepatedStatement范围内执行任意JDBC操作。缺点是像ResultSets这样的处理和整理会成为你的问题。

答案 1 :(得分:0)

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

getReturnedGeneratedKeys() Spring JDBC Excample