我正在使用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方法。
谢谢
答案 0 :(得分: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);
}