我如何复制/克隆一行从ResultSet在Java?多流的实现



我检索了一个包含许多行的ResultSet。必须分析每一行,所以我想在一个新线程中分析每一行(不要担心:我不会同时启动所有线程,假设一行10个线程)。整个ResultSet将专门用于从中读取数据(因此,它是一种静态只读表)。

所以我要做的是:

ResultSet rs;
public void loadResultSet(){
    ...
    rs = _preparedStatement.executeQuery();
    int rowSize = 0;
    while (rs.next()) {
       rowSize++;
    }

    //this method starts 10 threads simultaneously
    runThreads(rowSize);
     ...
}

@Override
public void run() {

    //Unknown object that allows me to store a copy of a single row from ResultSet
    Foo foo = rs.absolute(index);
    //Then i can retrieve data just like a normal ResultSet
    String s = foo.getString(1);
    ....
    ....
} 

任何建议吗?

样品真的很感激!谢谢!

如果我是u,我宁愿在单独的线程中执行查询,也像:

select * from table_name where mod(id,threadCount)=threadId

给每个线程一个id,然后执行它们。这样,每个线程将有不同的数据来处理

最新更新