`
斐斐宝贝
  • 浏览: 8758 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

批量插入mysql数据库

 
阅读更多

批量数据插入mysql数据库

使用原生jdbc插入

50w-----------5s

100w---------11s

500w----------60s

1000w---------2m

application

spring.datasource.url=jdbc:mysql://192.100.30.111:3306/northern7house?useUnicode=true&characterEncoding=UTF8&useSSL=false&autoReconnect=true&&rewriteBatchedStatements=true
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.1</version>
        <relativePath/> <!-- lookup parent from repository -->
</parent>
    <groupId>com.example</groupId>
    <artifactId>demo123</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo123</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
@SpringBootTest
class Demo123ApplicationTests {

    @Value("${spring.datasource.url}")
    private String url;
@Value("${spring.datasource.username}")
    private String username;
@Value("${spring.datasource.password}")
    private String password;
@Test
void contextLoads() throws SQLException {
        long begin=System.currentTimeMillis();
List<TestUser> list=generateUser(1000000);
System.out.println("list size"+list.size());
String sql="insert into test_user(uname,uage,unumber) values(?,?,?)";
Connection connection= DriverManager.getConnection(url,username,password);
connection.setAutoCommit(false);
PreparedStatement preparedStatement=connection.prepareStatement(sql);
        for(TestUser testUser:list){
            preparedStatement.setString(1,testUser.getUname());
preparedStatement.setString(2,testUser.getUage());
preparedStatement.setString(3,testUser.getUnumber());
preparedStatement.addBatch();
}

        preparedStatement.executeBatch();
connection.commit();
        long end=System.currentTimeMillis();
connection.close();
System.out.println("使用了毫秒数===="+(end-begin));
}

    public  List<TestUser> generateUser (int length){
        List<TestUser> list=new ArrayList<>();
        for(int i=0;i<length;i++){
          list.add(new TestUser(i+"name",i+"age",i+"num"));
}
        return list;
}
}
分享到:
评论

相关推荐

    Mybatis与JDBC批量插入MySQL数据库性能测试

    本文将探讨Mybatis和JDBC在批量插入MySQL数据库时的性能差异,并提供相关的测试资源。 首先,JDBC(Java Database Connectivity)是Java平台中用于与数据库交互的一种规范,它允许程序员使用SQL语句直接操作数据库...

    shell的多线程&当前文件夹下批量插入MySQL

    本文将详细讲解如何在Shell脚本中实现多线程,并结合实例介绍如何批量插入MySQL数据库。 首先,我们需要理解为什么要使用多线程。在处理大量并发任务时,多线程可以并发执行任务,避免串行执行的低效,尤其在需要对...

    C#通过NPOI库操作Excel,并将Excel数据导入Mysql数据库(自动建表)

    内容概要:本资源介绍了如何从利用Npoi库操作Excel,如相关读取单元格、行,介绍了如何对单元格数据格式进行操作,并分享了如何将Datatable数据导入Mysql数据库,方便项目管理。 阅读建议:此资源以如何读取Excel...

    Java实现批量向mysql写入数据的方法

    通过使用JDBC,可以实现这些基本操作,例如在本文中,我们使用了insert into语句向mysql数据库中插入数据。 4. Java语言中的时间处理:在本文中,我们使用了SimpleDateFormat类来处理时间信息,例如获取当前时间的...

    一个工具类搞定批量插入增加数据到Mysql数据库

    只要学我一样编写这么一个工具类便可以实现批量插入多条数据,百条,千条,万条,后期还会继续优化增加数据时的速度!有点代码基础的保证能看懂,此项目已经有了前端界面你可以直接的导入然后运行测试既可以了,表...

    C#.NET中如何批量插入大量数据到数据库中

    在C#.NET中批量插入大量数据到数据库是一个常见的任务,特别是在处理诸如从Excel文件导入数据等场景时。这里,我们将探讨如何使用C#.NET高效地完成这个任务,并提供一个简单的示例来说明整个过程。 首先,我们需要...

    Delphi批量插入数据库数据..rar

    或者使用批量插入数据的特定数据库特性,如MySQL的LOAD DATA INFILE。 以上就是使用Delphi批量插入数据库数据的一些关键知识点。具体到压缩包中的代码fans.net文件,可能是提供示例代码的网站链接,你可以访问该...

    spring jdbc Templatetest 访问mysql数据库,批量插入数据

    本主题将详细讲解如何使用Spring JDBC Template访问MySQL数据库并进行批量插入数据的操作。 首先,我们需要在项目中引入Spring框架的相关依赖,通常包括`spring-context`和`spring-jdbc`。这些可以在Maven或Gradle...

    odbc 数据库批量插入操作

    本话题将深入探讨如何使用ODBC进行数据库的批量插入操作,并与单条更新操作进行对比,展示其性能优势。 首先,了解ODBC的基本原理:ODBC驱动程序管理器作为桥梁,连接应用程序和数据库驱动。应用程序通过ODBC API...

    JDBC连接MySQL数据库批量插入数据过程详解

    "JDBC连接MySQL数据库批量插入数据过程详解" 本文主要介绍了使用JDBC连接MySQL数据库批量插入数据的过程详解,通过示例代码详细介绍了批量插入数据的步骤,对大家的学习或者工作具有一定的参考学习价值。 一、JDBC...

    国家开放大学 MySQL数据库应用 实验训练3 数据增删改操作

    MySQL数据库应用实验训练3 数据增删改操作 MySQL数据库应用实验训练3 数据增删改操作是国家开放大学提供的实验训练,旨在让学生熟悉 MySQL 数据库的基本操作,包括数据的增删改操作。实验中,学生将学习使用 Insert...

    Mybatis 3+Mysql 实现批量插入

    本文将深入探讨如何利用MyBatis框架结合MySQL数据库实现批量插入功能,包括其原理、配置、代码实现以及优化策略。 ### 一、MyBatis框架简介 MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级...

    读取Excle表格中的数据,并插入到mysql数据库中

    要将DataFrame中的数据插入MySQL数据库,首先需要安装`mysql-connector-python`库,它提供了连接MySQL数据库的接口。安装命令如下: ``` pip install mysql-connector-python ``` 接下来,你可以创建数据库连接...

    MySQL数据库管理器

    MySQL数据库管理器是一款基于Java开发的图形用户界面(GUI)工具,专用于管理和操作MySQL数据库。这个工具提供了全面的功能,使数据库管理员和开发者能够轻松执行常见的数据库管理任务,如创建和删除数据库、构建和...

    88秒插入1000万条数据到MySQL数据库表的操作方法

    我用到的数据库为,mysql数据库5.7版本的 首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: ... You can change this ...

    Java 实现从Excel批量导入数据到MySQL

    6. **执行SQL**:使用`Statement`或`PreparedStatement`执行SQL语句,批量插入数据。为提高效率,可以使用批处理(batch processing),将多条SQL语句打包一起执行。 7. **错误处理**:在执行过程中捕获并处理可能...

    批量插入数据到数据库请使用MysqlBulkCopy.dll.zip

    源码批量添加到SQLServer和Mysql数据库。源码包含有不同方法的添加,第一种逐条添加,第二种批量加入,其批量加实现原理其实就是把数据存入内存表(DataTable)中使用Backcopy一次性加入数据库。添加dll引用即可调用...

    java连接mysql数据库实现单条插入和批量插入

    Java 连接 MySQL 数据库实现单条插入和批量插入 Java 连接 MySQL 数据库实现单条插入和批量插入是 Java 编程语言中的一种常见操作。在实际项目中,我们经常需要将数据插入到 MySQL 数据库中,以便于存储和管理数据...

    jsp操作mysql数据库的blob字段

    在这个场景中,我们关注的是如何使用Java Server Pages(JSP)来操作MySQL数据库中的Blob(Binary Large Object)字段,这是一个用于存储大容量二进制数据如图片、文档或音频文件的特殊字段类型。以下是关于这个主题...

Global site tag (gtag.js) - Google Analytics