zoukankan      html  css  js  c++  java
  • Mysql 批处理多条sql语句

    package cn.itcast.demo;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    import org.junit.Test;
    
    import cn.itcast.utils.JdbcUtils;
    
    public class Demo3 {
    
        /**
         * jdbc批处理的两种方式:statement 和 preparedstatement
         create table testbatch
         (
             id int primary key,
             name varchar2(20)
         );
          
         */
        
        @Test
        public void testbatch1(){
            
            Connection conn = null;
            Statement st = null;
            ResultSet rs = null;
            
            try{
                conn = JdbcUtils.getConnection();
                String sql1 = "insert into testbatch(id,name) values(1,'aaa')";
                String sql2 = "insert into testbatch(id,name) values(2,'bbb')";
                String sql3 = "delete from testbatch where id=1";
                
                st = conn.createStatement();
                st.addBatch(sql1);
                st.addBatch(sql2);
                st.addBatch(sql3);
                
                st.executeBatch(); 
                st.clearBatch();
            }catch (Exception e) {
                e.printStackTrace();
            }finally{
                JdbcUtils.release(conn, st, rs);
            }
        }
        
        @Test
        public void testbatch2(){
            
            long starttime = System.currentTimeMillis();
            Connection conn = null;
            PreparedStatement st = null;
            ResultSet rs = null;
            
            try{
                conn = JdbcUtils.getConnection();
                String sql = "insert into testbatch(id,name) values(?,?)";
                st = conn.prepareStatement(sql);
                
                for(int i=1;i<10000008;i++){  //i=1000  2000
                    st.setInt(1, i);
                    st.setString(2, "aa" + i);
                    st.addBatch();
                    
                    if(i%1000==0){
                        st.executeBatch();
                        st.clearBatch();
                    }
                }
                st.executeBatch();
                
            }catch (Exception e) {
                e.printStackTrace();
            }finally{
                JdbcUtils.release(conn, st, rs);
            }
            
            long endtime = System.currentTimeMillis();
            
            System.out.println("程序花费时间:" + (endtime-starttime)/1000 + "秒!!");
        }
    
    }
  • 相关阅读:
    MySql学习20----数据库范式
    MySql学习17----数据库事务(01)
    MySql学习19-----用户管理
    MySql学习18----数据库事务---命令使用(02)
    MySql学习16----查看mysql库大小、表大小、索引大小
    MySql学习13----触发器
    MySql学习15----MySql日志
    java公开课-04-log4j
    java公开课-04-异常
    java公开课-03-内部类
  • 原文地址:https://www.cnblogs.com/lichone2010/p/3178677.html
Copyright © 2011-2022 走看看