Java 如何使循环的结果集更有效

Java 如何使循环的结果集更有效,java,resultset,Java,Resultset,在Oracle、MySQl或MSSQL的结果集中,如何使循环的结果集更快 while (rs.next()) { for (int i = 0; i < rs.getMetaData().getColumnCount(); i++) { rs.getString(i) } } while(rs.next()){ 对于(int i=0;i

在Oracle、MySQl或MSSQL的结果集中,如何使循环的结果集更快

    while (rs.next()) {

        for (int i = 0; i < rs.getMetaData().getColumnCount(); i++) {
            rs.getString(i)

        }

    }
while(rs.next()){
对于(int i=0;i

只要不需要太多的列,这种方法就非常有效,但是一旦有了90列和100000行,那么for循环就要经过100000行90次

要尝试的一件事是只获取一次列计数:

int colCount = rs.getMetaData().getColumnCount();
while (rs.next()) {
    for (int i = 0; i < colCount; i++) {
        rs.getString(i)
    }
}
int colCount=rs.getMetaData().getColumnCount();
while(rs.next()){
for(int i=0;i
你打算做什么?嗯,是的,是你告诉它的。如果您需要获取所有行的所有列的所有字符串,这几乎是您的选择。您可以尝试缓存列计数,但我怀疑这不会有多大帮助——您仍在迭代900万次。你到底需要做什么?你有没有研究过谷歌上的
jdbc分页
?它有助于处理大量数据。或者在读取1页不足以显示所有100000条记录时使用光标,因此最好使用分页,这样可以获得更好的性能您可以以迭代方式查询较少的数据量。这可能会使事情加快一点,而不是减少900万个数据点,并期待最好的结果。事实上,这并没有带来太大的不同。