public class Pdao {
/**
* pstmt对象内部有集合
* 1. 用循环疯狂向pstmt中添加sql参数,它自己有模板,使用一组参数与模板罚没可以匹配出一条sql语句
* 2. 调用它的执行批方法,完成向数据库发送!
* @throws SQLException
*/
@Test
public void fun5() throws SQLException {
Connection con = JdbcUtils.getConnection();
String sql = "INSERT INTO t_stu VALUES(?,?,?,?)";
PreparedStatement pstmt = con.prepareStatement(sql);
// 疯狂的添加参数
for(int i = 0; i < 10000; i++) {
pstmt.setInt(1, i+1);
pstmt.setString(2, "stu_" + i);
pstmt.setInt(3, i);
pstmt.setString(4, i%2==0?"男":"女");
pstmt.addBatch();//添加批!这一组参数就保存到集合中了。
}
long start = System.currentTimeMillis();
pstmt.executeBatch();//执行批!
long end = System.currentTimeMillis();
System.out.println(end - start);//412764, 301
}
}
是我的驱动包,版本太低了,我换了一个驱动包就好了
为连接加上事务,然后按批提交事务才可以,这样以非事务运行时不可以的,没有回滚空间和提交空间。
加事务很简单;
con.setAutoCommit(false);
然后在pstmt.executeBatch();后执行
con.commit();
如果有帮助,希望采纳