使用 Spring 的 JDBC 支持获取输出参数
我正在使用 Spring 的 JDBC 支持在 Oracle 数据库上运行 SQL 查询和更新。 我想插入一行,然后获取为其分配的键(使用 Oracle 序列)。 在正常的 JDBC 代码中,我将包含一个 RETURNING INTO 子句,然后注册一个输出参数 (这里有详细描述)
但是,我只想使用 Spring 来处理我所有的 JDBC 工作。 对于非插入 SQL 语句,我当前正在使用 MapSqlParameterSource 对象并注册所有输入参数。 我也可以注册这样的输出参数并将其返回给我吗? 我查看了 Spring 文档的第 11 章部分,发现如果我使用存储过程,则支持输出参数,但如果可能的话,我想避免这样做。 谢谢。
I'm using Spring's JDBC support to run SQL queries and updates on an Oracle database. I'd like to insert a row and then get the key that it was assigned (using an Oracle sequence). In normal JDBC code, I would include a RETURNING INTO clause and then register an output parameter (well described here)
However, I would like to just use Spring to handle all my JDBC work for me. For non-insert SQL statements, I'm currently using a MapSqlParameterSource object and registering all my input parameters. Can I also register an output parameter like this and have it returned to me? I looked over the Chapter 11 portion of the Spring docs, and I saw there was support for an output parameter if I'm using stored procedures, but I would like to avoid doing that if possible. Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
查看此代码 - 它可能会执行您想要的操作,但不确定 Oracle 是否支持此语法。
Check out this code - it may do what you want, not sure if Oracle supports this syntax though.
getReturnedGeneratedKeys() Spring JDBC Excample
我不认为 Spring JDBC 支持 API 为 OUT 参数提供显式支持,因此您可能需要退一步并使用 JdbcTemplate 提供的更通用的查询 API:
这使您可以执行任意 JDBC Spring 管理的连接和 PrepatedStatement 范围内的操作。 缺点是像
ResultSets
这样的东西的处理和整理会成为你的问题。I don't think the Spring JDBC support API provides explicit support for OUT parameters, so you may need to step back a bit and use the more general query API provided by
JdbcTemplate
:This lets you perform arbitrary JDBC operations within the scope of a Spring-managed connection and
PrepatedStatement
. The downside is that the handling and tidyup of things likeResultSets
becomes your problem.