0

Java で Access データベースの行を反復処理するために、JackCess ライブラリ ( http://sourceforge.net/p/jackcess/ ) を使用しています。行が多く、パフォーマンスはそれほど高くありません。現在、次のコードを使用してテーブルのすべての行を反復処理しています。

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(.. : ..) で反復するときにどのメソッドが呼び出されるのか、各行を反復して SQL メソッドを呼び出すことなく、1 回の呼び出しですべての行の arrayList を取得できるかどうか疑問に思います。

ありがとうございました

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 に答える