Java 迭代DB表的行:迭代时的性能
我使用JackCess库()在Java下迭代Access数据库的行。 行很多,性能也不是很好,目前我使用以下代码迭代表中的所有行:Java 迭代DB表的行:迭代时的性能,java,performance,jackcess,Java,Performance,Jackcess,我使用JackCess库()在Java下迭代Access数据库的行。 行很多,性能也不是很好,目前我使用以下代码迭代表中的所有行: private static Table VatUnitsTable; private void fun() { for (Map<String, Object> EXVAtRow : VatUnitsTable) { VatUnit vatU = new VatUnit((String)EXVAtRow.get("UUI
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
}
}
私有静态表是稳定的;
私人娱乐
{
对于(映射EXVAtRow:VatUnitsTable)
{
VatUnit vatU=新VatUnit((字符串)EXVAtRow.get(“UUID”);
setExtID((整数)EXVAtRow.get(“ID”);
//bla bla使用vatU对象
}
}
我想知道当使用for(..:..)进行迭代时调用什么方法,以及是否可以在一次调用中获得所有行的arrayList,而无需迭代每一行并调用SQL方法
谢谢你好的,找出一种更快的方法来遍历行,这似乎比我们所说的毫秒快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);
}
Cursor Cursor=Cursor.createCursor(VatUnitsTable;);
cursor.beforeFirst();
尝试
{
while(cursor.moveToNextRow())
{
Map EXVAtRow=cursor.getCurrentRow();
VatUnit vatU=新VatUnit((字符串)EXVAtRow.get(“UUID”);
setExtID((整数)EXVAtRow.get(“ID”);
//bla bla使用vatU对象
}
}
捕获(IOEX异常)
{
日志错误(ex);
}
当您为每个循环调用一个时,它随后调用对象的迭代器
并循环执行。所以它只创建一个迭代器一次?所以它不应该这么慢。我无法想象为什么它会更快。它本质上是与您最初发布的代码相同的代码路径(在引擎盖下)。