欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

如何实现批量添加batch版本二(效率高)

程序员文章站 2022-03-23 12:27:08
如何实现批量添加batch版本二...

如何实现批量添加batch版本二

url添加的一句话
问号请求参数
?rewriteBatchedStatements=true
如何实现批量添加batch版本二(效率高)
如何实现批量添加batch版本二(效率高)
如何实现批量添加batch版本二(效率高)

如何实现批量添加batch版本二(效率高)
如何实现批量添加batch版本二(效率高)
代码:

package test_path;

import org.junit.Test;

import java.sql.*;

public class *AndDeleteTest {

    @Test
    public void testMoMu(){
        long start = System.currentTimeMillis();
        Connection conn=null;
        PreparedStatement ps=null;
        ResultSet rs=null;

        try{
            //1、注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1?rewriteBatchedStatements=true",
                    "root", "root");
            //循环创建10000次预编译对象
            ps=conn.prepareStatement("insert into t_user values(null,?,?)");
            for (int i = 1; i < 10000; i++) {
                ps.setObject(1,"admin"+i);
                ps.setObject(2,i+"pwd");
                //将这200条sql语句攒起来
                ps.addBatch();
            }
            //统一执行
            ps.executeBatch();
            long end = System.currentTimeMillis();
            System.out.println("使用executeBatch在预编译对象中将sql语句攒起来花费时间:"+(end-start));

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            if(rs!=null){
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }
}

如何实现批量添加batch版本二(效率高)
如何实现批量添加batch版本二(效率高)
传统方式代码:

package test_path;

import org.junit.Test;

import java.sql.*;

public class *AndDeleteTest {

    @Test
    public void testMoMu(){
        long start = System.currentTimeMillis();
        Connection conn=null;
        PreparedStatement ps=null;
        ResultSet rs=null;

        try{
            //1、注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1",
                    "root", "root");
            //循环创建10000次预编译对象
            ps=conn.prepareStatement("insert into t_user values(null,?,?)");
            for (int i = 1; i < 200; i++) {
                ps.setObject(1,"admin"+i);
                ps.setObject(2,i+"pwd");
                ps.executeUpdate();
            }
            long end = System.currentTimeMillis();
            System.out.println("使用传统方式批量添加花费时间:"+(end-start));

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            if(rs!=null){
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }
}

本文地址:https://blog.csdn.net/qq_41709577/article/details/110677404