代码如下:
package com.jdbcTemplate1;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.sql.DataSource;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.JdbcTemplate;
public class JdbcTemplateForBatchUpdate {
//需要填充的数据量
public static int count=1000;
/**
* @param args
*/
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
DataSource dt=(DataSource) context.getBean("dataSource");
//使用数据源转
JdbcTemplate template=new JdbcTemplate(dt) ;
//定义批量数据的列表
final List stcdlist=new ArrayList();
final List namelist=new ArrayList();
//填充数据到列表 ;
for (int i = 0; i < count; i++) {
stcdlist.add("814120_"+i);
namelist.add("钦州站_"+i);
}
String sql="insert into pptn values(?,?)";
//通过内部类创建批处理对象
BatchPreparedStatementSetter bts=new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int index) throws SQLException {
ps.setString(1, (String) stcdlist.get(index));
ps.setString(2, (String) namelist.get(index));
}
@Override
public int getBatchSize() {
// TODO Auto-generated method stub
return count;
}
};
//执行批插入数据
template.batchUpdate(sql, bts);
System.out.println("批量插入数据完成!");
}
//结果如下:
}