2012-10-04 77 views
1

我想應用Java Concurrent即Callable for resultset。場景是 -JDBC上的Java併發結果

  1. 使用JDBC查詢數據庫。
  2. 將結果集發送到可調用以寫入不同的文件。

由於數據會很大,我想結果集。請幫助我爲問題找到更好的方法。

+0

我不明白你的問題是什麼。你可以通過Future返回結果集,不是嗎?亞當給了我點亮。我同意他的觀點。 – Fildor

回答

2

由於ResultSet的設計方式,它不應該被許多線程同時使用。但是您可以創建一個迭代結果集並將行數據發送到Callables的線程,這些線程將執行每行(或一組行)的進一步處理。

0

我想你是在swing或javaFX下編程,然後你屏蔽了GUI線程。

因此,您必須創建另一個線程來處理jdbc請求,並顯示「請稍候」消息。

做這樣的事情:

new Thread(new Runnable(){ 
    void run(){ 
    final result = jdbc.getResultSet(); 
    // Under JavaFX 2 
    Platform.runLater(new Runnable() { 
      public void run() { 
       //Show results 
      } 
    }); 
    // Under Swing 
    SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       //Show results 
      } 
    }); 
    } 
} 
);