我正在使用带有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;
}
}
由于
答案 0 :(得分:0)
CachedRowSet.absolute()
可能不是缓慢的原因,因为它是从内存加载的。根据{{3}},CachedRowSet
可能不是大型数据集的正确工具,但是一旦拥有了CachedRecordSet
,它就是负责排序的Java默认排序器。
尝试使用http://java.sun.com/developer/Books/JDBCTutorial/chapter5.html。看一下Glazed Lists。