1.3.2.3.4. 批量插入/更新/删除

DBAgent.saveAll(pos);1
DBAgent.deleteAll(pos);2
DBAgent.updateAll(pos);3

1

批量新增插入PO对象数据

2

批量删除PO对象数据

3

批量修改PO对象数据

这些批量操作性能在普通台式电脑的测试环境下的性能如下(单位:毫秒,仅供参考,在不满足性能要求的情况下需要考虑其它技术实现策略):

一百条数据:    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中调用。