BatchDemo.java :
public class BatchDemo {
public static void main(String[] args) {
batch();
}
/**
* 必须把批量执行的操作视为单个事务
* 程序应该在开始批量操作之前关闭自动提交,然后开始收集更新语句,
* 当批量操作执行结束后,提交事务。
*/
public static void batch(){
Connection conn=null;
Statement stmt=null;
String sql1="insert into mystu values(200,'rose',19,'F')";
String sql2="insert into mystu values(210,'martha',25,'F')";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.
getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");
conn.setAutoCommit(false);//不要忘记这个
stmt=conn.createStatement();
stmt.addBatch(sql1);//添加
stmt.addBatch(sql2);//添加
int[] result=stmt.executeBatch();//执行
conn.commit();
for(int i:result){
System.out.println(i);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
if(stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
本文提供了一个使用Java进行批量SQL操作的例子,展示了如何通过关闭自动提交来提高数据库操作效率,并确保所有更改作为单一事务处理。

被折叠的 条评论
为什么被折叠?



