public interface BatchDao {
int deleteBatch(final String name, final Collection parameters);
int updateBatch(final String name, final Collection parameters);
int insertBatch(final String name, final Collection parameters);
}
由BatDao源码可见,我们需要在相应的方法里面插入list来完成此次的批量操作;
//批量插入list
List<HashMap> insertList = new ArrayList<>();
List<Map<String,String>>list= (List<Map<String, String>>) inInfo.get("rows");
for (int i=0;i<list.size();i++){
String iid2 = UUIDHexIdGenerator.generate().toString();
Map<String,String>map1=list.get(0);//这里取到我们线路/单位信息
HashMap <String,String>map2=new HashMap<>();
map2.put("iid",iid2);
map2.put("checkLevel",map.get("checkLevel"));//检查级别
map2.put("orgType",map1.get("type"));//部门类型
map2.put("dept",map1.get("belongDep"));//部门/中心
map2.put("deptCname",map1.get("belongDepCname"));//部门/中心中文
map2.put("checkDate",map.get("checkTime"));//检查日期
map2.put("line",map1.get("line"));//线路
map2.put("checkPlace",map1.get("orgName"));//地点
map2.put("recordId",iid);//检查记录id
insertList.add(map2);
}
这里在for循环的背景下实现批量操作,也就是在原本使用map进行逐次操作的环境下换成“将map装进list”中实现本次的功能,并且无需一直循环去调dao.insert()方法;
步骤
1、在for循环外面声明一个list用来封装map;
2、在for循环里面为list进行赋值,
3、赋值完成后在for循环外面直接像往常一样调用插入/更新/删除方法,并对其方法进行赋值;
dao.insertBatch("sql",list);