使用java代码向mysql数据库插入100万条数据
创始人
2024-02-07 15:49:07
0

使用java代码向mysql数据库插入100万条数据

使用springboot集成Mysql数据库,并使用java代码循环向msql数据库插入100万条数据,并测试插入时间

目录结构

  • 使用java代码向mysql数据库插入100万条数据
    • 一、使用工具
    • 二、项目结构图
      • 创建springboot项目启动类
      • 创建插入数据类
    • 三、结论
    • 四、表结构与建表语句
      • 表结构
      • 建表语句
    • pom.xml与application.yml
      • pom.xml文件
      • 配置文件application.yml

一、使用工具

idea代码开发工具
mysq5.7.38
Navicat可视化工具

二、项目结构图

在这里插入图片描述

创建springboot项目启动类

MySpringBootApplication.java

package com.xiaoa;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class MySpringBootApplication {public static void main(String[] args) {SpringApplication.run(MySpringBootApplication.class);}}

创建插入数据类

MySchedulRunner.java,此类使用 JdbcTemplate 执行拼接的sql语句。

package com.xiaoa.run;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;@Component
public class MySchedulRunner implements CommandLineRunner {private static final Logger LOGGER = LoggerFactory.getLogger(MySchedulRunner.class);@AutowiredJdbcTemplate jdbcTemplate;@Overridepublic void run(String... args) {/**向数据库t_user表循环插入数据*/String sql = "";long t1 = System.currentTimeMillis();int batchNum = 1000000;for (int i = 1; i <= batchNum; i++) {sql = "INSERT INTO t_user VALUES (" + i + ",'张三', 20, '男', '2019-01-01 00:00:01')";jdbcTemplate.execute(sql);}long t2 = System.currentTimeMillis();LOGGER.info("插入{}条数据,耗时{}秒", batchNum, (t2 - t1) / 1000);}

三、结论

使用Navicat查看插入的数据
数据成功插入到myql数据库中!
在这里插入图片描述

经过测试此代码成功将100万条数据插入到了mysql数据库,耗时2116秒,约1000000/2116=472条/秒,速度比手工插入还是快很多的!

四、表结构与建表语句

表结构

使用Navicat查看表结构
在这里插入图片描述

建表语句

CREATE TABLE `t_user`  (`id` int(11) NOT NULL,`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,`age` int(11) NULL DEFAULT NULL,`sex` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,`createtime` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0),PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;SET FOREIGN_KEY_CHECKS = 1;

pom.xml与application.yml

pom.xml文件


4.0.0org.springframework.bootspring-boot-starter-parent2.0.4.RELEASEcom.xiaoaspringboot-mysql1.0-SNAPSHOTxiaoa-mysqlspringboot集成mysql88org.springframework.bootspring-boot-starter-webmysqlmysql-connector-java5.1.40org.springframework.bootspring-boot-starter-jdbcorg.springframework.bootspring-boot-maven-pluginrepackage

配置文件application.yml

spring:#DB Configuration:datasource:driverClassName: com.mysql.jdbc.Driverurl: jdbc:mysql://192.168.88.128:3306/canel?useUnicode=true&characterEncoding=utf8username: rootpassword: 123456
server:port: 8085

相关内容

热门资讯

已起诉网络诬陷,娄烨再回应“涉... 25日傍晚,导演娄烨在社交平台发布“致电影《三个字》 主创、主要演员及所有参与者的公开信”,再次回应...
重拳打击走私犯罪,海关总署查获... 海关总署负责人今天(25日)介绍,“十四五”以来,海关会同公安等相关部门,滚动开展专项行动,重拳打击...
开学很基础?但总有不基础! 秋季学期来临, 你准备怎么过? 小编为你准备“显贵套装”! 要想“显贵”就不能只穿基础款! 虽然开学...
武汉男子拍摄违停时被当街殴打,... 商务车在医院门口占据右转车道造成堵塞,武汉一市民出言提醒并用手机拍摄时,司机与其发生言语和肢体冲突。...
上海楼市限购政策松绑,市场已在... 继北京之后,上海楼市限购政策也迎来调整。沪籍居民家庭和在上海连续缴纳社会保险或个人所得税满1年及以上...
上海房地产政策优化调整,公积金... 每经记者|包晶晶 每经编辑|陈梦妤
波兰总理:不打算在俄乌冲突结束... 当地时间8月25日,波兰总理图斯克在与到访的加拿大总理卡尼举行的新闻发布会上表示,波兰、加拿大和欧洲...
娄烨:已起诉网络诬陷,已反诉福... 8月25日,导演娄烨发文称其已经起诉网络诬陷,并已经反诉福莱魔石非法解约。娄烨表示,“已经正式起诉福...
因对他人提起诉讼,兆驰股份第一... 兆驰股份(002429)8月25日晚间发布公告,公司第一大股东股份遭冻结。 公告显示,兆驰股份于近日...
美财政部取消对叙利亚制裁条例 当地时间8月25日,美国财政部海外资产控制办公室(OFAC)宣布,已发布最终规则,正式将叙利亚制裁条...