package Batch;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import org.junit.Test;
import com.edu.fjnu.harry.JdbcUtils;
public class demo {
/*
* pstmt 对象内部u有集合
* 用循环疯狂想pstmt中添加sql参数、他自己有模板,使用一组参数与模板就可以匹配出一条sql语句
* 调用他的执行批方法,完成向数据库发送
*/
@Test
public void fun5() throws ClassNotFoundException, SQLException, IOException{
/*
* pstmt
* 添加参数到批中
* 执行批
*
*/
Connection con = JdbcUtils.geConnection();
String sql = "insert into STU values (?,?,?)" ;
PreparedStatement pstmt = con.prepareStatement(sql);
//开始添加参数
long start = System.currentTimeMillis();
for(int i = 0;i<5000;i++){
pstmt.setString(1, "stu_"+i);
pstmt.setInt(2, i);
pstmt.setString(3, i%2==0?"男":"女");
pstmt.addBatch();//添加批,这一组参数保存到集合中
// pstmt.executeUpdate();
}
pstmt.executeBatch();
long end =System.currentTimeMillis();
System.out.println(end -start );
}
}
试了一下一条一条插和使用批处理的时间,一条一条等了三分多钟还没插完所以直接终止了,批处理用了1.72s 。。一秒多