说明:本文JDBCUtils工具类在https://blog.csdn.net/qq_15076569/article/details/82191167已经附上源码
一:批处理核心就是调用Statement对象executeUpdate方法。注意:批处理只针对DML语句
import com.itheima.utils.JDBCUtils;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Arrays;
public class JDBCBatchTest {
public static void main(String[] args) {
Connection conn = null;
Statement stat = null;
try {
conn = JDBCUtils.getConnection();
stat = conn.createStatement();
String sql1 = "insert into account values(null,'赵丽颖',3000),(null,'王丽坤',2000);";
String sql2 = "update account set money = 66666 where aid = 1;";
String sql3 = "delete from users where uid > 5;";
String sql4 = "update users set password='pw123' where uid in(1,2,3);";
//String sql5 = "select * from users;";
//方式一: 分步执行(一个SQL语句调用一次executeUpdate())
/*int num1 = stat.executeUpdate(sql1);
int num2 = stat.executeUpdate(sql2);
int num3 = stat.executeUpdate(sql3);
int num4 = stat.executeUpdate(sql4);*/
//方式二: 批处理
//添加SQL语句到批处理指令中
stat.addBatch(sql1);
stat.addBatch(sql2);
stat.addBatch(sql3);
stat.addBatch(sql4);
// stat.addBatch(sql5);
//执行批处理
int[] arr = stat.executeBatch(); //数组记录的就是该批处理指令中每一个SQL语句的执行结果.
System.out.println(Arrays.toString(arr));
//清除批处理执行
stat.clearBatch();
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtils.release(conn,stat);
}
}
}