如何使用OracleCachedRowSet加速对JTable进行排序?

时间:2011-11-15 12:13:32

标签: java performance swing sorting jtable

我正在使用带有cachedRowSet OracleCachedRowSet实现的数据的JTable。 在getValueAt()方法中,我需要使用cachedRowSet.absolute()方法将rowSet指针移动到所需的行。 似乎cachedRowSet.absolute()非常慢,当我使用大量行排序表(使用java默认排序器)时,它会使排序过程变得非常慢,以至于可能需要几秒钟。

有没有人有解决方法如何加快排序过程(有没有办法在absolute()中使用getValueAt()或加快absolute()方法?)

以下是使用getValueAt()方法的absloute()示例:

public Object getValueAt(int row, int col) {
    try {
      if (!rowSet.absolute(row + 1)) {
        return null;
      }
      return rowSet.getObject(col + 1);
    } catch (SQLException e) {
      return null;
    }
  }

由于

1 个答案:

答案 0 :(得分:0)

CachedRowSet.absolute()可能不是缓慢的原因,因为它是从内存加载的。根据{{​​3}},CachedRowSet可能不是大型数据集的正确工具,但是一旦拥有了CachedRecordSet,它就是负责排序的Java默认排序器。

尝试使用http://java.sun.com/developer/Books/JDBCTutorial/chapter5.html。看一下Glazed Lists