我的代码如下try{
for (i=0;i<rs.getRows();i++)
{
String id=rs.getCell(0,i+2).getContents();
String cardid=rs.getCell(1,i+2).getContents();
String pwd=rs.getCell(2,i+2).getContents();
st.addBatch("insert into tx_card_info values('"+id+"','"+cardid+"','"+pwd+"')");
st.executeBatch();
//st.executeUpdate("insert into tx_card_info values('"+id+"','"+cardid+"','"+pwd+"')");
}
con.commit();
}catch(SQLException e){
con.rollback();
out.print("错误行号:"+rs.getCell(0,i+1).getContents());
}前面已经设置数据库默认为不提交
con.setAutoCommit(false);
数据库链接没有问题,我把con.commit();提交语句放入循环中可以实现,但是放到循环外无法提交
请问是何问题?
for (i=0;i<rs.getRows();i++)
{
String id=rs.getCell(0,i+2).getContents();
String cardid=rs.getCell(1,i+2).getContents();
String pwd=rs.getCell(2,i+2).getContents();
st.addBatch("insert into tx_card_info values('"+id+"','"+cardid+"','"+pwd+"')");
st.executeBatch();
//st.executeUpdate("insert into tx_card_info values('"+id+"','"+cardid+"','"+pwd+"')");
}
con.commit();
}catch(SQLException e){
con.rollback();
out.print("错误行号:"+rs.getCell(0,i+1).getContents());
}前面已经设置数据库默认为不提交
con.setAutoCommit(false);
数据库链接没有问题,我把con.commit();提交语句放入循环中可以实现,但是放到循环外无法提交
请问是何问题?
我把st.executeBatch();放到外面也不行
用我注释掉的st.executeUpdate("insert into tx_card_info values('"+id+"','"+cardid+"','"+pwd+"')");
也不行
难道要我这么写?
st.addBatch("insert into tx_card_info values('"+id+"','"+cardid+"','"+pwd+"')"+",");
st.addBatch("insert into tx_card_info values('"+id+"','"+cardid+"','"+pwd+"');");
把st.executeBatch();
con.commit();
放到for循环里面就可以
放到外面就不行,不知道为什么啊.....
.prepareStatement("insert into person(id, name) values(?,?)"); ps.setInt(1, 3);//设置参数
ps.setString(2, "elise");
ps.addBatch(); //把语句加入批处理队列 ps.setInt(1, 4);
ps.setString(2, "plegall");
ps.addBatch(); ps.setInt(1, 5);
ps.setString(2, "mike");
ps.addBatch(); ps.executeBatch(); //执行批处理 ps.close(); //最后关闭
conn.close();