我正在尝试从 mySQL 服务器(在我的 LAN 中)读取一个巨大的结果集。我以寻找setFetchSize
方法的方式实现了它:BalusC's Example。所以我做了:
con = DriverManager.getConnection(url, user, password);
//con.setAutoCommit(false);
st = con.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
st.setFetchSize(Integer.MIN_VALUE);
rs = st.executeQuery(query);
int count = 0;
while (rs.next ()) {
// Process entry
String rsc = rs.getString ("resource");
String tpc = rs.getString("topic");
System.out.println(count + ": " + rsc);
++count;
}
虽然,它挂在该行的第 1077 行rs.next()
。它不会抛出异常。
编辑:
超时后发生了一些新的事情。它返回此错误消息:
JDWP exit error JVMTI_ERROR_NONE(0): getting frame location [../../../src/share/back/stepControl.c:641]
这个错误似乎无关。
EDIT2:我编写了一个 PHP 脚本,用于按流检索结果,并且发生的情况完全相同。所以它与JDBC无关......我不知道发生了什么!