packagecn.itcast.demo;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.Statement;importorg.junit.Test;importcn.itcast.utils.JdbcUtils;public classDemo3 {/*** jdbc批处理的两种方式:statement 和 preparedstatement
create table testbatch
(
id int primary key,
name varchar2(20)
);*/@Testpublic voidtestbatch1(){
Connection conn= null;
Statement st= null;
ResultSet rs= null;try{
conn=JdbcUtils.getConnection();
String sql1= "insert into testbatch(id,name) values(1,'aaa')";
String sql2= "insert into testbatch(id,name) values(2,'bbb')";
String sql3= "delete from testbatch where id=1";
st=conn.createStatement();
st.addBatch(sql1);
st.addBatch(sql2);
st.addBatch(sql3);
st.executeBatch();
st.clearBatch();
}catch(Exception e) {
e.printStackTrace();
}finally{
JdbcUtils.release(conn, st, rs);
}
}
@Testpublic voidtestbatch2(){long starttime =System.currentTimeMillis();
Connection conn= null;
PreparedStatement st= null;
ResultSet rs= null;try{
conn=JdbcUtils.getConnection();
String sql= "insert into testbatch(id,name) values(?,?)";
st=conn.prepareStatement(sql);for(int i=1;i<10000008;i++){ //i=1000 2000
st.setInt(1, i);
st.setString(2, "aa" +i);
st.addBatch();if(i%1000==0){
st.executeBatch();
st.clearBatch();
}
}
st.executeBatch();
}catch(Exception e) {
e.printStackTrace();
}finally{
JdbcUtils.release(conn, st, rs);
}long endtime =System.currentTimeMillis();
System.out.println("程序花费时间:" + (endtime-starttime)/1000 + "秒!!");
}
}