JDBC之SQL批处理

说明:本文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);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_15076569/article/details/82191350