有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java迭代DB表的行:迭代时的性能

我正在使用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方法

谢谢!


共 (1) 个答案

  1. # 1 楼答案

    好的,找出一种更快的方法来遍历行,这似乎是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);
    }