存储过程将多个表返回到 spring jdbc 模板
我正在使用 JdbcTemplate 从 Spring DAO 类调用存储过程。我的问题是,存储过程返回多个表。有没有办法使用 Spring JdbcTemplate 访问多个表。
如果我使用 jdbcTemplate.queryForList(myStoredProc, new Object[]{参数}
我只从结果中获取第一个表。
我的数据库是SQL Server 2005。
除了jdbcTemplate之外还有其他方法可以满足我的要求吗?
Iam calling a stored procedure from my Spring DAO class using JdbcTemplate. My problem is that, stored procedure returns multiple tables. Is there a way to access multiple tables using Spring JdbcTemplate.
If I usejdbcTemplate.queryForList(myStoredProc, new Object[]{parameters}
iam getting only first table from the result.
My database is SQL Server 2005.
Is there any method other than jdbcTemplate for my requirement?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
辛哈提到的解决方案对我不起作用。我能够使用 JdbcTemplate#call(CallableStatementCreator, List) 解决此问题。例如:
The solution sinha referenced didn't work for me. I was able to solve this using
JdbcTemplate#call(CallableStatementCreator, List<SqlParameter>)
. For example:请参阅 http://static.springsource.org /spring/docs/2.0.7/reference/jdbc.html#jdbc-StoredProcedure
本节中给出的示例完全适合存储过程返回多个结果集的情况。虽然给出的示例适用于 Oracle,但它也应该以同样的方式适用于 MS SQL Server。
See http://static.springsource.org/spring/docs/2.0.7/reference/jdbc.html#jdbc-StoredProcedure
The example given in this section is exactly for your case where the stored procedure returns multiple result-sets. Although the example given there is for Oracle, but it should work in the same way for MS SQL Server also.
我们可以多次使用
SimpleJdbcCall
的returningResultSet
来命名每个返回的结果集。下面是一个例子:
下面给出了返回两个表的 SP 主体。
我们可以使用 SimpleJdbcCall 来获取两个结果集,如下所示:
We can use
SimpleJdbcCall
'sreturningResultSet
multiple time to name each returned resultset.Below is an example:
Given below body of SP returning two tables.
We can use SimpleJdbcCall to get the both result sets as below: