0

多数の行を含む 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);

    ....
    ....

} 

なにか提案を?

サンプルは本当にありがたいです!ありがとう!

4

1 に答える 1

0

私があなたなら、次のように別のスレッドでクエリを実行したいと思います。

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

各スレッドにIDを与えて実行するだけです。これにより、各スレッドは処理するデータが異なります

于 2013-04-05T08:29:05.637 に答える