ArrayList list =... --> 从数据库中获取数据
//对列表中对象的值做一些改变
for(MyObject object:list){ object.save(); }
除了这个 for 循环,有没有一种方法可以比多次调用 save() 更有效地保存多个项目?
终于找到了
FlowManager.getModelAdapter(MyTable.class).saveAll(myObjectsList);
它比多次调用 save 更快。从对 15 个项目的快速测试来看,多次保存平均需要 120 毫秒,而 saveAll 大约需要 100 毫秒。百分比明智,这是一个很大的差异。
save()
多次调用就OK了。如果有一千个条目,您可以使用异步事务来避免阻塞 UI。
如果您真的想保存一次,请创建一个新表(模型)名称ListObject
,然后使用一对多关系将其存储为List<Object>
. 所以只需要保存一次。
https://agrosner.gitbooks.io/dbflow/content/Relationships.html