我有一个MSSQL
数据库并正在运行以下查询:
select * from projects; select * from user
上面的查询一次返回两个结果集,我无法单独触发这两个查询。如何在 Java 类中同时处理两个结果集?
处理多个的正确代码ResultSet
JDBC 语句返回:
PreparedStatement stmt = ...;
boolean isResultSet = stmt.execute();
int count = 0;
while(true) {
if(isResultSet) {
rs = stmt.getResultSet();
while(rs.next()) {
processEachRow(rs);
}
rs.close();
} else {
if(stmt.getUpdateCount() == -1) {
break;
}
log.info("Result {} is just a count: {}", count, stmt.getUpdateCount());
}
count ++;
isResultSet = stmt.getMoreResults();
}
重要部分:
-
getMoreResults()
and execute()
return false
表明语句的结果只是一个数字而不是一个ResultSet
.
- 你需要检查
stmt.getUpdateCount() == -1
了解是否有更多结果。
- 确保关闭结果集或使用
stmt.getMoreResults(Statement.CLOSE_CURRENT_RESULT)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)