spring jdbctemplate批量操作

1.public class MyBatchPreparedStatementSetter implements BatchPreparedStatementSetter{
    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);
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值