一个小问题,但我想知道是否有人知道我为什么会出现以下行为。我有一个带有 UNION 指令的大型 select 语句。我需要调用此语句以获得输入列表。因此:
Connection connection = createConnection();
PreparedStatement statement = connection.prepareStatement(dbLoadOneQuery, TYPE_FORWARD_ONLY, CONCUR_READ_ONLY);
for (Integer param : params) {
statement.setInt(1, param);
statement.setInt(2, param);
statement.addBatch();
}
statement.execute();
do {
ResultSet resultSet = statement.getResultSet();
// snip
} while (statement.getMoreResults());
现在,我知道我可以通过多种方式做到这一点。是否有更好的方法不是问题。相反,我想知道为什么我的结果成堆出现?我需要从我的声明中读取 3-4 个单独的 ResultSet。它们不对应于联合,它们的大小不相等,并且数据不是以任何特定形式分组的。
我猜这是驱动程序特定的事情,但我找不到允许这种行为的 JDBC 规范。驱动程序com.sybase.jdbc4.jdbc.SybDriver
来自库 jconn4。
jConnect (TM) for JDBC(TM)/7.07 GA(Build 26666)/P/EBF19485/JDK 1.6.0/jdbcmain/Wed Aug 31 03:14:04 PDT 2011