【发布时间】:2014-12-22 11:42:43
【问题描述】:
我有两个结果集,一个来自 DB2,一个来自 Sybase。 我想根据某些条件合并这些结果集,为此我创建了一个函数,它将获取两个结果集并合并它们。
但我收到 SQL 异常 - Resultset Closed
我正在使用 Connection 对象和 Prepared 语句连接到相应的数据库并执行查询。
public void ExecuteDB2Query(SQLQuery){
Connection DB2con = DB2Sess.connection();
PreparedStatement statement = DB2con.prepareStatement(SQLQuery);
MyResulset1= statement.executeQuery();
}
另一种方法:
public void ExecuteSybaseQuery(SQLQuery){
Connection Sybasecon = SybaseSess.connection();
PreparedStatement statement = Sybasecon.prepareStatement(SQLQuery);
MyResulset2= statement.executeQuery();
}
最终合并方法
puble void merge{
while(MyResultset1.next()){
while(MyResultset2.next()){
<some code here>
}
我们有什么方法可以遍历这两个结果集吗?无一例外。
【问题讨论】:
-
使您的连接可滚动并在每次迭代时重置为第一个结果集 2。
-
如何使我的连接可滚动?
-
prepareStatement(SQLQuery,ResultSet.TYPE_SCROLL_INSENSITIVE);和 Sybasecon.prepareStatement(SQLQuery,ResultSet.TYPE_SCROLL_INSENSITIVE);它允许您在结果集函数调用时向前和向后移动以及将光标移动到第一个或最后一个。
-
很抱歉,我没明白你的意思。
-
你能告诉我我上面在我的代码中给出的内容吗?像:- public void ExecuteSybaseQuery(SQLQuery){ Connection Sybasecon = SybaseSess.connection(); PreparedStatement 语句 = Sybasecon.prepareStatement(SQLQuery); MyResulset2= statement.executeQuery(); } 在这个方法中我必须做出改变吗?