批量数据插入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数据库性能测试,资源包含文档、代码和数据库。
内容概要:本资源介绍了如何从利用Npoi库操作Excel,如相关读取单元格、行,介绍了如何对单元格数据格式进行操作,并分享了如何将Datatable数据导入Mysql数据库,方便项目管理。 阅读建议:此资源以如何读取Excel...
只要学我一样编写这么一个工具类便可以实现批量插入多条数据,百条,千条,万条,后期还会继续优化增加数据时的速度!有点代码基础的保证能看懂,此项目已经有了前端界面你可以直接的导入然后运行测试既可以了,表...
主要给大家介绍C#.net中如何批量插入大量数据到数据库中,本文涉及到C#.net中批量插入数据到数据库中方面的内容,对C#.net批量插入数据到数据库中感兴趣的朋友可以参考下本
实现从Excel批量导入数据到MySQL 数据库中,可以同时导入多张Excel表,使用时在excel.table 中配置需要导入的表及可!
源码批量添加到SQLServer和Mysql数据库。源码包含有不同方法的添加,第一种逐条添加,第二种批量加入,其批量加实现原理其实就是把数据存入内存表(DataTable)中使用Backcopy一次性加入数据库。添加dll引用即可调用...
shell的多线程,以及使用多线程编写shell脚本实现当前文件夹下批量插入MySQL。
spring jdbc Templatetest 访问mysql数据库,批量插入数据
MySql练习1:批量插入成绩数据.zip,MySql练习1:批量插入成绩数据.zipMySql练习1:批量插入成绩数据.zipMySql练习1:批量插入成绩数据.zipMySql练习1:批量插入成绩数据.zip
excel数据批量导入数据库的小工具,节省你的时间
MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...
在之前只知道SqlServer支持数据批量插入,殊不知道Oracle、SQLite和MySql也是支持的,不过Oracle需要使用Orace.DataAccess驱动,今天就贴出几种数据库的批量插入解决方法。 首先说一下,IProvider里有一个用于实现...
使用一般的mysql命令或者是sql脚本都可以插入数据到mysql数据表中,我这里介绍如何是Shell批量的从CSV文件中添加数据到mysql数据库中,方便数据迁徙,测试数据的添加之类的工作。
利用JSON数据批量操作数据库(插入、更新) 实现数据传入
主要介绍了JDBC连接MySQL数据库批量插入数据过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
在linux/unix系统下,批量插入mysql数据库表,字体格式为utf8
一种快速大数据的mysql 数据库的插入方法,相比之前一条一条插入,根本不是一个级别的!
可以批量插入、 更新数据库数据。 支持 sqlserver、mysql、db2
项目(nodejs)中需要一次性插入多笔数据到数据库,数据库是mysql的,由于循环插入的性能太差,就像使用批量插入的方法提高数据的插入性能。 批量插入的数据库的表结构如下: 1.数据库连接 var mysql = require('...
在之前只知道SqlServer支持数据批量插入,殊不知道Oracle、SQLite和MySQL也是支持的,不过Oracle需要使用Orace.DataAccess驱动,今天就贴出几种数据库的批量插入解决方法。 首先说一下,IProvider里有一个用于实现...