excel批量导入时如果数据量过大,分条提交,和一块提交的方法都会很慢,我选择的是分批提交,提交保存时用最简单的jdbc的方法
int rowNum=单元格的行数;
int f=rowNum/5000;//5000次提交一次
List list=new ArrayList();
for(int c = 0; c < f; c++){
for(int i=c*5000+1;i<(c+1)*5000;i++){
int cellnum=这行单元格的列数;
List onerow=new ArrayList();
for(int j=0;j
保存时:(适用于oracle)
Connection conn = this.getSession().connection();得到连接:
conn.setAutoCommit(false);把自动提交改为false
String sql="insert into 表名 (字段1,字段2) values (?,?)";
PreparedStatement pst = conn.prepareStatement(sql);sql预编译
for(int i=0;i<list.size;i++){
//循环得到list中的值
List list=llist.get(i);
pst.setString(1,list.get(0));
pst.setString(2,list.get(1));
pst.addBatch();//放在pst中
if(i=list.size()-1){
//到最后一条才提交
pst.executeBatch();
conn.commit();
pst.clearBatch();
pst.close();
conn.close();
}
}