我正在使用JdbcTemplate从我的Spring DAO类调用存储过程。我的问题是,存储过程返回多个表。有没有一种方法可以使用Spring JdbcTemplate访问多个表。
如果我使用jdbcTemplate.queryForList(myStoredProc, new Object[]{parameters}
,iam只从结果中获取第一个表。
数据库是SQL Server 2005。
除了jdbcTemplate,还有其他方法可以满足我的需求吗?
我正在使用JdbcTemplate从我的Spring DAO类调用存储过程。我的问题是,存储过程返回多个表。有没有一种方法可以使用Spring JdbcTemplate访问多个表。
如果我使用jdbcTemplate.queryForList(myStoredProc, new Object[]{parameters}
,iam只从结果中获取第一个表。
数据库是SQL Server 2005。
除了jdbcTemplate,还有其他方法可以满足我的需求吗?
3条答案
按热度按时间nkhmeac61#
sinha引用的解决方案对我不起作用。我能够使用
JdbcTemplate#call(CallableStatementCreator, List<SqlParameter>)
解决这个问题。例如:hs1rzwqc2#
请访问http://static.springsource.org/spring/docs/2.0.7/reference/jdbc.html#jdbc-StoredProcedure
本节中给出的示例正好适用于存储过程返回多个结果集的情况。虽然这里给出的示例适用于Oracle,但它也应该以同样的方式适用于MS SQL Server。
bkkx9g8r3#
我们可以多次使用
SimpleJdbcCall
的returningResultSet
来命名每个返回的结果集。下面是一个例子:下面给出返回两个表的SP的主体。我们可以使用SimpleJdbcCall来获得两个结果集,如下所示: