1

我想为结果集应用 Java Concurrent ie Callable。情景是——

  1. 使用 JDBC 查询数据库。
  2. 将结果集发送到可调用以写入不同的文件。

由于数据很大,我想结果集。请帮助我为问题找到更好的方法。

4

2 回答 2

2

由于 ResultSet 的设计方式,它不应该被许多线程同时使用。但是您可以创建一个遍历结果集的线程并将行数据发送到 Callables,后者将对每一行(或一组行)执行进一步的处理。

于 2012-10-04T07:57:20.533 回答
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
          }
   });
  }
}
);
于 2012-10-04T08:27:38.290 回答