JDBC回顾三Batch进行批处理

通常情况下,我们的同时执行多个语句时,如果利用statement进行一次一次的处理,需要编写多个stmt.executeUpdate(sql);语句。而我们利用批处理时,只需要将多个语句添加到批处理中,然后只需要执行一次stmt.executeBatch()即可。批处理对于PreparedStatement同样适用。

public class JdbcBatch {

    public static void main(String[] args){
        Connection conn =null;
        Statement stmt = null;
        java.sql.PreparedStatement ptmt =null;

        try{
            Class.forName("com.mysql.jdbc.Driver"); //建立驱动
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/studemo","root","root");//建立连接

            stmt = conn.createStatement();//创建语句
            /*
            String sql="insert into stu values (20,'zhangsan','1234')"; 
            String sql1="insert into stu values (21,'lisi','1234')"; 

            stmt.executeUpdate(sql);//执行语句
            stmt.executeUpdate(sql1);
            //不利用批处理时,我们需要每次都进行执行sql语句
            */



           /* stmt = conn.createStatement();
            stmt.addBatch("insert into stu values (25,'zhangsan','1234')");
            stmt.addBatch("insert into stu values (26,'zhangsan','1234')");
            stmt.addBatch("insert into stu values (27,'zhangsan','1234')");
            stmt.executeBatch();
            //利用statement批处理,可以简化。但是如果含有参数则在字符串拼接的时候会比较麻烦
            */

            ptmt = conn.prepareStatement("insert into stu values (?,?,?)");

            ptmt.setInt(1, 35);
            ptmt.setString(2, "lisi");
            ptmt.setString(3, "1234");
            ptmt.addBatch();

            ptmt.setInt(1, 36);
            ptmt.setString(2, "lisi");
            ptmt.setString(3, "1234");
            ptmt.addBatch();

            ptmt.setInt(1, 37);
            ptmt.setString(2, "lisi");
            ptmt.setString(3, "1234");
            ptmt.addBatch();

            ptmt.executeBatch(); //  利用preparestatement 进行批处理







            }catch(ClassNotFoundException e){
                e.printStackTrace();
            }catch(SQLException e){
                e.printStackTrace();
            }finally{
                try{
                if(stmt!=null){stmt.close();stmt=null;}
                if(ptmt!=null){ptmt.close();ptmt=null;}
                if(conn!=null){conn.close();conn=null;}
                }catch(SQLException e){
                e.printStackTrace();                
                }
            }

        }  
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值