JDBC回顾三Batch进行批处理

来源:互联网 发布:lol韩服mac版 编辑:程序博客网 时间:2024/05/29 09:51

通常情况下,我们的同时执行多个语句时,如果利用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();                                }            }        }      }
0 0
原创粉丝点击