Java使用JDBC向MySQL数据库批次插入10W条数据(测试效率)

Java使用JDBC向MySQL数据库批次插入10W条数据(测试效率)攻略

本文主要介绍如何使用Java和JDBC向MySQL数据库批次插入10万条数据,并且测试其效率。

环境要求

  • MySQL数据库
  • Java开发环境
  • JDBC驱动

实现步骤

1. 安装MySQL数据库和JDBC驱动

如果你已经安装了MySQL数据库,那么可以跳过这一步。

安装JDBC驱动有很多种方式,这里以Maven作为示例,可以在pom.xml文件中加入以下依赖项:

<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>8.0.24</version>
</dependency>

2. 创建数据表

在MySQL数据库中创建一个数据表,用于存储将要插入的数据。例如,可以使用以下SQL语句创建一个名为person的数据表:

CREATE TABLE person (
  id INT NOT NULL AUTO_INCREMENT,
  name VARCHAR(50) NOT NULL,
  age INT NOT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3. 编写Java程序

接下来编写Java程序,将数据插入到数据库中。以下是示例代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class BatchInsertDemo {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
        conn.setAutoCommit(false);

        long start = System.currentTimeMillis();

        PreparedStatement pstmt = conn.prepareStatement("INSERT INTO person(name, age) VALUES (?, ?)");

        int count = 100000;

        for (int i = 1; i <= count; i++) {
            pstmt.setString(1, "Person-" + i);
            pstmt.setInt(2, i % 100);
            pstmt.addBatch();
            if (i % 1000 == 0) {
                pstmt.executeBatch();
                conn.commit();
            }
        }

        pstmt.executeBatch();
        conn.commit();

        long end = System.currentTimeMillis();
        System.out.println("Cost time: " + (end - start) / 1000f + " seconds");

        pstmt.close();
        conn.close();
    }
}

在上面的代码中,我们通过PreparedStatement预处理语句进行数据的批量插入。通过设置setString、setInt方法为PreparedStatement语句中的参数进行数据的批量插入。

接着,我们使用addBatch方法将参数批量添加到PreparedStatement批次中,当批次大小满足1000时就执行批量插入操作,并在最后提交所有的操作。

当执行完成后,通过System.ou.println打印出执行时间。

4. 执行Java程序

在命令行中进入到Java程序所在的目录,编译Java代码并执行程序,可以得到以下输出结果:

$ javac BatchInsertDemo.java
$ java BatchInsertDemo
Cost time: 19.324 seconds

以上输出结果说明向MySQL数据库批次插入10万条数据仅需19秒。

总结

通过本文介绍的方法,可以在Java中实现向MySQL数据库批次插入大量数据的操作,提高插入数据的效率,这对于大数据量的操作非常有用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java使用JDBC向MySQL数据库批次插入10W条数据(测试效率) - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 详解Spring Boot最核心的27个注解,你了解多少?

    现在让我来详细讲解一下“详解SpringBoot最核心的27个注解,你了解多少?”的完整攻略。 引言 SpringBoot是一款优秀的Java Web开发框架,用于快速构建Web应用程序。在SpringBoot框架中,注解的使用十分重要,可以提高开发效率、提高代码可读性和可维护性。本文将详细介绍SpringBoot框架中最核心的27个注解,旨在帮助大家更好地…

    Java 2023年5月15日
    00
  • Spring框架的JdbcTemplate使用

    Spring框架的JdbcTemplate是一种轻量级的Java数据访问框架,可以让Java开发人员更方便地使用数据库,同时提供了非常好的性能和灵活性。 以下是使用Spring框架的JdbcTemplate的完整攻略: 1. 添加对JdbcTemplate的依赖 在项目中pom.xml文件中添加以下maven依赖,以使用JdbcTemplate: <d…

    Java 2023年5月20日
    00
  • Spring boot整合mybatis实现过程图解

    首先我们来讲解一下Spring Boot整合Mybatis的基本过程和步骤: 1. 引入相关依赖 首先我们需要在我们的pom.xml文件中引入以下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boo…

    Java 2023年5月19日
    00
  • 详解Java Web如何限制访问的IP的两种方法

    下面详细讲解一下“详解Java Web如何限制访问的IP的两种方法”。 第一种方法:使用Filter过滤器实现IP限制 创建一个Filter类,代码如下: import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSe…

    Java 2023年6月2日
    00
  • MySQL筑基篇之增删改查操作详解

    MySQL筑基篇之增删改查操作详解 一、准备工作 在开始进行MySQL的增删改查操作前,需要先做一些准备工作。首先需要安装MySQL数据库,可以通过官方网站下载,并安装在本地机器上。安装完成后,需要登录MySQL,创建数据库并创建数据表。 1.1 登录MySQL 在命令行或终端中输入以下代码,登录MySQL: mysql -u root -p 其中,root…

    Java 2023年5月26日
    00
  • 【IntelliJ IDEA】Maven构建自己的第一个Java后台的方法

    下面我为您详细讲解使用IntelliJ IDEA和Maven构建自己的第一个Java后台的方法: 准备工作 安装Java JDK并设置环境变量。 安装IntelliJ IDEA。 安装Maven。 创建Maven项目 打开IntelliJ IDEA,选择“Create New Project”。 选择“Maven”项目类型,然后点击“Next”。 输入项目信…

    Java 2023年6月2日
    00
  • spring boot 注入 property的三种方式(推荐)

    在Spring Boot应用程序中,我们可以使用application.properties或application.yml文件来配置应用程序的属性。这些属性可以通过三种方式注入到Spring Bean中。下面是详解Spring Boot注入property的三种方式的完整攻略: 使用@Value注解 @Value注解是Spring框架提供的一种注入属性的方…

    Java 2023年5月14日
    00
  • Java文件管理操作的知识点整理

    下面是“Java文件管理操作的知识点整理”的完整攻略。 什么是Java文件管理操作 Java文件管理操作是指在Java程序中对文件进行创建、读取、写入、删除等文件操作的过程。通过Java文件管理操作,我们可以对文件进行增删改查、复制和移动等常见文件操作,便于我们在Java程序中处理文件相关业务逻辑。 Java文件管理操作的基本流程 Java文件管理操作的基本…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部