0

我正在使用 JackCess 库 ( http://sourceforge.net/p/jackcess/ ) 在 Java 下遍历 Access 数据库的行。行很多,性能不是很好,目前我使用以下代码遍历表的所有行:

private static Table VatUnitsTable;

private void fun()
{
    for (Map<String, Object> EXVAtRow : VatUnitsTable)
    {
       VatUnit vatU = new VatUnit((String)EXVAtRow.get("UUID"));
       vatU.setExtID((Integer) EXVAtRow.get("ID"));
       //bla bla working with vatU object
    }
}

我想知道使用 for(.. : ..) 迭代时会调用什么方法,以及是否可以在一次调用中获取所有行的 arrayList 而无需遍历每一行并调用 SQL 方法。

谢谢

4

1 回答 1

0

好的,找到一种更快的遍历行的方法,即使我们谈论的是毫秒,这似乎也要快 4 倍。

Cursor cursor = Cursor.createCursor(VatUnitsTable;);
cursor.beforeFirst();
try
{
    while (cursor.moveToNextRow())
    {
       Map<String, Object> EXVAtRow = cursor.getCurrentRow();
       VatUnit vatU = new VatUnit((String)EXVAtRow.get("UUID"));
       vatU.setExtID((Integer) EXVAtRow.get("ID"));
       //bla bla working with vatU object
    }
 }
 catch (IOException ex)
{
    log.error(ex);
}
于 2013-09-18T12:41:04.000 回答