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 批处理多条sql语句》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇《精通并发与Netty》学习笔记(13resize监听div的size变化下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Oracle/MySql/SQL Sqlserver分页查询

简述     简单概括一下Oracle,MySql,SQL Sqlserver这三个数据库的分页查询语句。 Oracle分页查询     例:每页显示两条数据,现在要查询第二页,也就是第3-4条数据。     查询语句: 1 select * from ( 2 select dept.*,rownum num from dept where...

备份与恢复概述,冷备,热备

对于DBA来说,最基本的工作就是数据库的备份与恢复,在意外情况下(如服务器宕机、磁盘损坏等)要保证数据不丢失,或者是最小程度地丢失。每个DBA应该每时每刻都关心自己所负责的数据库的备份情况。MySQL数据库提供的大多数工具(如mysqldump、ibbackup、replication)都能很好地完成备份的工作,当然也可以通过第三方的一些工具来完成,如xt...

MySql计算两个日期的时间差函数

MySql计算两个日期时间的差函数: SELECT ABS(TIMESTAMPDIFF(MINUTE,FROM_UNIXTIME(heartbeat_timestamp, '%Y-%m-%d %H:%i:%S'),create_date)) difftime from s_learn_time_heartbeat_log ORDER BY difftime...

MySQL中随机生成固定长度字符串的方法

在MySQL中有时需要随机生成数字或字符串,随机生产数字可直接使用rand()函数,但是要随机生成字符串就比较麻烦。 要随机生成字符串代码如下: 在MySQL中定义一个随机串的方法,然后再SQL语句中调用此方法。 随机串函数定义方法: CREATE DEFINER=`root`@`localhost` FUNCTION `rand_string`(n I...

操作笔记:linux下安装mysql

1,检查linux下是否安装了mysql shell指令如下: [root@iZ945sgm0ugZ ~]# rpm -qa|grep -i mysql 如果有的话:做出挨个删除(eg:rpm -ev mysql-connector-odbc-5.2.5-6.el7.x86_64) [root@iZ945sgm0ugZ ~]# rpm -qa|grep -...

mysql2es全量更新方案

mysql到es的全量更新方案可以通过 logstash来实现 logstash可以做基于全量的定时更新,也可以做基于时间的定时更新。 logstash的使用方式如下(本人用的是logstash-7.6.1,不同版本在使用上应该有细微区别,区别百度可解决) 1.https://artifacts.elastic.co/downloads/logstash/...