【发布时间】:2016-08-06 01:04:01
【问题描述】:
我在使用 DbUtils 从 SQL Server 中的存储过程中检索结果时遇到问题。
在 SQL Server Management Studio 中执行的存储过程在针对特定输入值执行时返回两个单独的结果集,但对于其他值,它只返回一个结果集。下面的图片说明了这个问题:
我在这里面临的问题是我正在使用 DbUtils BeanListHandler 将结果转换为 UserInfo bean 的列表。
List<UserInfo> userList = (List<UserInfo>) run.query(STORED_PROC, new BeanListHandler(UserInfo.class), refId);
当存储过程只返回一个结果集时,它工作正常。 但是,在返回两个结果集的情况下,它只给出第一个结果集的列表。
我认为通过使用 JDBC,我们可以使用多个 ResultSet,但我不确定如何处理这个 DbUtils。
有人可以提供见解吗?如果需要任何其他信息,请更新我,我会提供。
【问题讨论】:
-
谁能帮忙。我不清楚我的查询吗?
-
能把存储过程的内容贴出来吗?
-
@Dave 我无法访问存储过程中的查询。我只能执行它以获得结果。
-
您是否考虑过将
org.apache.commons.dbutils.QueryRunner子类化并用使用PreparedStatement#getMoreResults()的代码覆盖适当的.query方法? -
@GordThompson 感谢您的指点 (y) 将调查它
标签: java sql-server stored-procedures jdbc apache-commons-dbutils