DBAgent.saveAll(pos);DBAgent.deleteAll(pos);
DBAgent.updateAll(pos);
这些批量操作性能在普通台式电脑的测试环境下的性能如下(单位:毫秒,仅供参考,在不满足性能要求的情况下需要考虑其它技术实现策略):
一百条数据: SaveAll:178;UpdateAll:100;DeleteAll:82 五百条数据: SaveAll:318;UpdateAll:192;DeleteAll:353 一千五数据: SaveAll:518;UpdateAll:590;DeleteAll:842 三千条数据: SaveAll:735;UpdateAll:513;DeleteAll:1575 一万条数据: SaveAll:1282;UpdateAll:1183;DeleteAll:4750 十万条数据: SaveAll:9155;UpdateAll:11245;DeleteAll:44919
另外,如果需要根据某些特定条件进行批量更新或删除操作时,可以采用如下方法:
DBAgent.bulkUpdate("delete from Org where orgid>? and orgid<?", 200L, new Long(210)); DBAgent.bulkUpdate("update from Org set orgname=? where orgid>? and orgid<?", "测试", 210L, new Long(220));
DBAgent.bulkUpdate方法将根据传入的delete或update的HQL语句,以及?条件参数值进行批量删除或更新操作。因为要显式传入HQL,所以该方法只允许在DAO中调用。