专业回答
executor.startBatch(); //一定要有,通知开始批量
int batch = 0;
for(TreeCate TreeCate:TreeCateList){
//调用获取sequence的方法。如果没有的话就去掉这行代码。
TreeCate.setTreeCateId(getNextId());
//参数1为:ibatis中需要执行的语句的id ,参数2为要插入的数据
executor.insert("TreeCate_insertTreeCate", TreeCate);
batch++;
//每500条批量提交一次。
if(batch==500){
executor.executeBatch();
batch = 0;
}
}
executor.executeBatch(); //将最后的数据执行,最后不够500条的数据
return null;
}
});
}
int batch = 0;
for(TreeCate TreeCate:TreeCateList){
//调用获取sequence的方法。如果没有的话就去掉这行代码。
TreeCate.setTreeCateId(getNextId());
//参数1为:ibatis中需要执行的语句的id ,参数2为要插入的数据
executor.insert("TreeCate_insertTreeCate", TreeCate);
batch++;
//每500条批量提交一次。
if(batch==500){
executor.executeBatch();
batch = 0;
}
}
executor.executeBatch(); //将最后的数据执行,最后不够500条的数据
return null;
}
});
}
本文解答了ibatis中使用sqlmapExecutor.executeBatch()时返回成功的记录数总是为0的问题,并提供了一段示例代码,展示了如何正确使用startBatch()及executeBatch()方法实现批量插入。
一骑当后
1419

被折叠的 条评论
为什么被折叠?



