批量数据插入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数据库时的性能差异,并提供相关的测试资源。 首先,JDBC(Java Database Connectivity)是Java平台中用于与数据库交互的一种规范,它允许程序员使用SQL语句直接操作数据库...
本文将详细讲解如何在Shell脚本中实现多线程,并结合实例介绍如何批量插入MySQL数据库。 首先,我们需要理解为什么要使用多线程。在处理大量并发任务时,多线程可以并发执行任务,避免串行执行的低效,尤其在需要对...
内容概要:本资源介绍了如何从利用Npoi库操作Excel,如相关读取单元格、行,介绍了如何对单元格数据格式进行操作,并分享了如何将Datatable数据导入Mysql数据库,方便项目管理。 阅读建议:此资源以如何读取Excel...
通过使用JDBC,可以实现这些基本操作,例如在本文中,我们使用了insert into语句向mysql数据库中插入数据。 4. Java语言中的时间处理:在本文中,我们使用了SimpleDateFormat类来处理时间信息,例如获取当前时间的...
只要学我一样编写这么一个工具类便可以实现批量插入多条数据,百条,千条,万条,后期还会继续优化增加数据时的速度!有点代码基础的保证能看懂,此项目已经有了前端界面你可以直接的导入然后运行测试既可以了,表...
在C#.NET中批量插入大量数据到数据库是一个常见的任务,特别是在处理诸如从Excel文件导入数据等场景时。这里,我们将探讨如何使用C#.NET高效地完成这个任务,并提供一个简单的示例来说明整个过程。 首先,我们需要...
或者使用批量插入数据的特定数据库特性,如MySQL的LOAD DATA INFILE。 以上就是使用Delphi批量插入数据库数据的一些关键知识点。具体到压缩包中的代码fans.net文件,可能是提供示例代码的网站链接,你可以访问该...
本主题将详细讲解如何使用Spring JDBC Template访问MySQL数据库并进行批量插入数据的操作。 首先,我们需要在项目中引入Spring框架的相关依赖,通常包括`spring-context`和`spring-jdbc`。这些可以在Maven或Gradle...
本话题将深入探讨如何使用ODBC进行数据库的批量插入操作,并与单条更新操作进行对比,展示其性能优势。 首先,了解ODBC的基本原理:ODBC驱动程序管理器作为桥梁,连接应用程序和数据库驱动。应用程序通过ODBC API...
"JDBC连接MySQL数据库批量插入数据过程详解" 本文主要介绍了使用JDBC连接MySQL数据库批量插入数据的过程详解,通过示例代码详细介绍了批量插入数据的步骤,对大家的学习或者工作具有一定的参考学习价值。 一、JDBC...
MySQL数据库应用实验训练3 数据增删改操作 MySQL数据库应用实验训练3 数据增删改操作是国家开放大学提供的实验训练,旨在让学生熟悉 MySQL 数据库的基本操作,包括数据的增删改操作。实验中,学生将学习使用 Insert...
本文将深入探讨如何利用MyBatis框架结合MySQL数据库实现批量插入功能,包括其原理、配置、代码实现以及优化策略。 ### 一、MyBatis框架简介 MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级...
要将DataFrame中的数据插入MySQL数据库,首先需要安装`mysql-connector-python`库,它提供了连接MySQL数据库的接口。安装命令如下: ``` pip install mysql-connector-python ``` 接下来,你可以创建数据库连接...
MySQL数据库管理器是一款基于Java开发的图形用户界面(GUI)工具,专用于管理和操作MySQL数据库。这个工具提供了全面的功能,使数据库管理员和开发者能够轻松执行常见的数据库管理任务,如创建和删除数据库、构建和...
我用到的数据库为,mysql数据库5.7版本的 首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: ... You can change this ...
6. **执行SQL**:使用`Statement`或`PreparedStatement`执行SQL语句,批量插入数据。为提高效率,可以使用批处理(batch processing),将多条SQL语句打包一起执行。 7. **错误处理**:在执行过程中捕获并处理可能...
源码批量添加到SQLServer和Mysql数据库。源码包含有不同方法的添加,第一种逐条添加,第二种批量加入,其批量加实现原理其实就是把数据存入内存表(DataTable)中使用Backcopy一次性加入数据库。添加dll引用即可调用...
Java 连接 MySQL 数据库实现单条插入和批量插入 Java 连接 MySQL 数据库实现单条插入和批量插入是 Java 编程语言中的一种常见操作。在实际项目中,我们经常需要将数据插入到 MySQL 数据库中,以便于存储和管理数据...
在这个场景中,我们关注的是如何使用Java Server Pages(JSP)来操作MySQL数据库中的Blob(Binary Large Object)字段,这是一个用于存储大容量二进制数据如图片、文档或音频文件的特殊字段类型。以下是关于这个主题...