• Statement及PreparedStatement执行多个sql


        这两个对象的区别:
    1.Statement它更适合执行不同sql的批处理,它没有提供预处理功能,性能比较低。
    2.PreparedStatement它适合执行相同的批处理,它提供了预处理功能,属性比较高。 
              /**
          * @param args
          * @throws SQLException
          * @throws ClassNotFoundException
          */
         public static void main(String[] args) throws ClassNotFoundException,
                    SQLException {
                // 定义sql 语句
               String sql1 = "create table person(id int,name varchar(20))";
               String sql2 = "insert into person values(1,'tom')";
               String sql3 = "insert into person values(2,'fox')";
               String sql4 = "insert into person values(3,'tony')";
               String sql5 = "update person set name='张三' where id=1";
               String sql6 = "delete from person where id=3";
     
               Connection conn = jdbcUtils.getConnection();
               Statement st = conn.createStatement();
     
                // 添加批处理sql
               st.addBatch(sql1);
               st.addBatch(sql2);
               st.addBatch(sql3);
               st.addBatch(sql4);
               st.addBatch(sql5);
               st.addBatch(sql6);
     
                // 执行批处理sql
               st.executeBatch();
               st.clearBatch();
               st.close();
                conn.close();
     
         }
     
     
    使用版本高一点的 jdbc的jar包时加入参数可开启缓存在url中加参数:
    ?useServerPrepStmts=true&cachePrepStmts=true&rewriteBatchedStatements=true
         /**
          * @param args
          * @throws SQLException
          * @throws ClassNotFoundException
          */
         public static void main(String[] args) throws ClassNotFoundException,
                    SQLException {
               String sqlString = "insert into person values(?,?)";
               Connection conn = jdbcUtils. getConnection();
               PreparedStatement pst = conn.prepareStatement(sqlString);
                long l = System. currentTimeMillis();
                for ( int i = 0; i < 10000; i++) {
                    pst.setInt(1, i);
                    pst.setString(2, "name" + i);
                    pst.addBatch();
                     if (i % 1000 == 0) {
                         pst.executeBatch();
                         pst.clearBatch(); // 清空缓存
                    }
               }
               pst.executeBatch();
               pst.close();
               conn.close();
               System. out.println(System. currentTimeMillis() - l);
         }
  • 相关阅读:
    css选择器
    js中event.target和event.srcElement的区别
    js生成10个20-50之间的随机数(包含20和50)
    chrome jsonView插件安装 在浏览器地址栏里输入接口后返回的json数据格式化
    JS字符串使用占位符轻松实现拼接(来自react源码)
    linux + node + yarn + git + ssh + linux免密登录 + pm2自动部署
    react tab切换 第一次切换到某个页面时会请求数据,以后不会再请求数据
    解决方案:sublime Text 3 无法安装插件有关问题 (JSON文件schema_version问题)
    ES6解构代替concat数组拼接
    2019年最新web前端笔试题
  • 原文地址:https://www.cnblogs.com/haofaner/p/5652750.html
Copyright © 2020-2023  润新知