1 Introduction
当需要向数据库发送一批SQL语句执行时,应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率。
2 Example
2.1 statementBatch
void | |
int[] | executeBatch() |
void | clearBatch() |
public voidstatemBatch(){
Connection conn=null;
Statement state=null;
ResultSet rs=null;
try{
conn=JdbcUtils.getConnection();
state=conn.createStatement();
String sql1="insert intousers values (null,'lll','1234')";
String sql2="updateusers set username='iii' where id=2";
state.addBatch(sql1);
state.addBatch(sql2);
state.executeBatch();
}catch(Exception e){
e.printStackTrace();
}finally{
JdbcUtils.release(conn, state, rs);
}
}
2.2 preparedStatementBatch
void | addBatch() |
void | clearParameters() |
public void preparedStatementBatch(){
Connection conn=null;
PreparedStatement pstate=null;
ResultSet rs=null;
try{
conn=JdbcUtils.getConnection();
String sql="insertinto users values (null,?,?)";
pstate=conn.prepareStatement(sql);
for(int i=0;i<100;i++){
pstate.setString(1, "name"+i);
pstate.setString(2, i+"");
pstate.addBatch();
if(i%10==0){
pstate.executeBatch();
pstate.clearBatch();
}
}
}catch(Exception e){
e.printStackTrace();
}finally{
JdbcUtils.release(conn, pstate, rs);
}
}