zoukankan      html  css  js  c++  java
  • 批处理SQL语句

        作用:想发送多条SQL,又要降低与数据库系统的交互,这时使用批处理
        
        一】Statement对象——适合对不同结构的SQL语句进行批处理操作
            步骤:
                1)将给定的 SQL 命令添加到此 Statement 对象的当前命令列表中
                    void addBatch(String sql);
                2)将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。
                    int[] executeBatch()
                    返回值:
                        1> 大于等于 0 的数 - 指示成功处理了命令,是给出执行命令所影响数据库中行数的更新计数
                        2> SUCCESS_NO_INFO 的值 - 指示成功执行了命令,但受影响的行数是未知的
                        3> EXECUTE_FAILED 的值 - 指示未能成功执行命令,仅当命令失败后驱动程序继续处理命令时出现
                        
                3)清空此 Statement 对象的当前 SQL 命令列表
                    void clearBatch();

            code:

              /*此方法只会连接一次,但是会编译多次*/
                stmt = conn.createStatement();
                /*添加SQL语句*/
                stmt.addBatch(SqlMapping.ADD_USER_SQL);
                stmt.addBatch(SqlMapping.MODIFIED_USER_SQL);
                /*执行多条SQL语句*/
                int[] rows = stmt.executeBatch();
                System.out.println(rows.length);
                /*清空SQL语句*/
                stmt.clearBatch();    


                
                
        二】PreparedStatement对象——适合对相同机构的SQL语句进行批处理操作
            重点类:
                void addBatch();
                void executeBatch()
                void clearBatch();
            code:

           /*此方式只连接一次,也只编译一次!*/
                pstmt = conn.prepareStatement(SqlMapping.ADD_USER_PRSQL);
                for (int i = 0; i < 1003; i++) {
                    pstmt.setString(1, "jack" + i);
                    pstmt.setInt(2, (i + 15) % 30);
                    pstmt.addBatch();
                    if (0 == (i % 100)) {
                        pstmt.executeBatch();
                        pstmt.clearBatch();
                    }
                }
                pstmt.addBatch();
                pstmt.execute();
                pstmt.clearBatch();

     

  • 相关阅读:
    【tomcat8】consider increasing the maximum size of the cache
    *更新*无需root,一条命令强制全屏模式
    处理SFTP服务器上已离职用户,设置为登录禁用状态
    一个Web 持续集成工作实践
    tensorflow实战笔记(18)----textCNN
    train loss相关问题
    Spark学习(4)----ScalaTest
    scala学习(4)---Array定长数组操作
    spark学习(3)---集合
    spark学习(2)---RDD
  • 原文地址:https://www.cnblogs.com/SkyGood/p/4009221.html
Copyright © 2011-2022 走看看