最近在做数据抽取工作,用到了ibatis,发现如果单纯的将SqlMapClient设置进来去,然后通过sqlMapClient.executeBatcn()去执行批量的时候,实际上是每条单独执行而达不到批量的去操作,网上翻了挺久,发现要用以下的方式来实现批量的操作:
public void addUser(final List<User> userList) throws Exception {//需要将传入的参数设置为final
getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor executor)
throws SQLException {
executor.startBatch();
for (User user : userList) {
executor.insert("TestDemo.addUser", user);//此处可以是update、delete
}
executor.executeBatch();
return null;
}
});
}