private List<Map> lists;(要插入的list)
public MyBatchPreparedStatementSetter(List<Map> lists){
this.lists=lists;
}
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {(i 出入list的index)
// TODO Auto-generated method stub
Map map=lists.get(i);
Set<String> keys=map.keySet();
int index=1;
for(String key:keys){
ps.setObject(index, map.get(key));(set值)
index++;
}
}
@Override
public int getBatchSize() {
// TODO Auto-generated method stub
return lists.size();
}
}
2.@Override
public void insertBatch(List<Map> member) {(Map类型(LinkedHashMap保证顺序))
// TODO Auto-generated method stub
MyBatchPreparedStatementSetter mps=new MyBatchPreparedStatementSetter(member);
if(member.size()>0){
StringBuilder sql=new StringBuilder();
sql.append("insert into es_member (");
Map map=member.get(0);
Set<String> keys=map.keySet();
int index=0;
for(String key:keys){
if(index==0){
sql.append(key);
index+=1;
}else{
sql.append(","+key);
}
}
index=0;
sql.append(") values(");
for(String key:keys){
if(index==0){
sql.append(" ?");
index+=1;
}else{
sql.append(" ,?");
}
}
sql.append(" )");
this.daoSupport.insertBatch(sql.toString(), mps);
}
}
3.
@Override
public void insertBatch(String sql,BatchPreparedStatementSetter bps) {
// TODO Auto-generated method stub
this.jdbcTemplate.batchUpdate(sql, bps);
}