【基于Thread多线程+随机数(Random)+java版本JDBC手动提交事务+EasyExcel读取excel文件,向数据库生成百万级别模拟数据】

news2025/2/27 7:15:02

在这里插入图片描述

基于Thread多线程+随机数(Random)+java版本JDBC手动提交事务+EasyExcel读取excel文件,向数据库生成百万级别模拟数据

      • 基于Thread多线程+随机数(Random)+java版本JDBC手动提交事务+EasyExcel读取excel文件,向数据库生成百万级别模拟数据
        • MyMyExcelDate
        • MyMythread
        • excel数据
        • 数据库结果

基于Thread多线程+随机数(Random)+java版本JDBC手动提交事务+EasyExcel读取excel文件,向数据库生成百万级别模拟数据

MyMyExcelDate
public class MyMyExcelDate {
    private String id ;
    private String name ;
    private String tel ;
    private String idcard;
    private String wechat;
    private String birth;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

    public String getIdcard() {
        return idcard;
    }

    public void setIdcard(String idcard) {
        this.idcard = idcard;
    }

    public String getWechat() {
        return wechat;
    }

    public void setWechat(String wechat) {
        this.wechat = wechat;
    }

    public String getBirth() {
        return birth;
    }

    public void setBirth(String birth) {
        this.birth = birth;
    }
}
MyMythread

ioi的大小根据实际调整

import com.alibaba.excel.EasyExcel;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;


public class MyMythread {
    public static void main(String[] args) throws Exception {
        myThread f1 = new myThread();
        f1.start();
        myThread f2 = new myThread();
        f2.start();
        myThread f3 = new myThread();
        f3.start();
        myThread f4 = new myThread();
        f4.start();
        myThread f5 = new myThread();
        f5.start();
        myThread f6 = new myThread();
        f6.start();
        myThread f7 = new myThread();
        f7.start();
        myThread f8 = new myThread();
        f8.start();
        myThread f9 = new myThread();
        f9.start();
        myThread f0 = new myThread();
        f0.start();
    }

    static class myThread extends Thread{

        @Override
        public void run(){

            InputStream inputStream = null;
            try {
                inputStream = new FileInputStream("C:\\Users\\test\\Desktop\\test.xlsx");
            } catch (FileNotFoundException e) {
                throw new RuntimeException(e);
            }

            List<MyMyExcelDate> tmpList = EasyExcel.read(inputStream)
                    // 设置与Excel表映射的类
                    .head(MyMyExcelDate.class)
                    // 设置sheet,默认读取第一个
                    .sheet(3)
                    // 设置标题所在行数
                    .headRowNumber(1)
                    // 异步读取
                    .doReadSync();

            List<String> nameList = new ArrayList<>();
            List<String> telList = new ArrayList<>();
            List<String> idcardList = new ArrayList<>();
            List<String> wechatList = new ArrayList<>();
            List<String> birthList = new ArrayList<>();
            for (MyMyExcelDate tmpDate : tmpList) {
                nameList.add(tmpDate.getName());
                telList.add(tmpDate.getTel());
                idcardList.add(tmpDate.getIdcard());
                wechatList.add(tmpDate.getWechat());
                birthList.add(tmpDate.getBirth());
            }
            // 生成 Random 对象
            Random random = new Random();
            int ioi = 1;

            while (ioi<=1000){
                System.out.println("批次:"+ioi);
                ioi++;
                String url = "jdbc:mysql://127.0.0.1:3306/testDB?characterEncoding=utf-8";
                String username = "root";
                String password = "123456";
                Connection conn = null;
                PreparedStatement ps = null;
                Long start = System.currentTimeMillis();
                System.out.println("start...");
                try {
                    conn = DriverManager.getConnection(url, username, password);
                    conn.setAutoCommit(false);
                    String sql = "insert into mockdata(name,tel,idcard,wechat,birth) values (?,?,?,?,?)";
                    ps = conn.prepareStatement(sql);
                    // ps.executeUpdate();
                    for (int i = 1; i <= 1000; i++) {
                        int number = random.nextInt(100);
                        int number2 = random.nextInt(100);
                        int number3 = random.nextInt(100);
                        int number4 = random.nextInt(100);
                        int number5 = random.nextInt(100);
                        ps.setString(1, nameList.get(number));
                        ps.setString(2, telList.get(number2));
                        ps.setString(3, idcardList.get(number3));
                        ps.setString(4, wechatList.get(number4));
                        ps.setString(5, birthList.get(number5));
                        ps.addBatch();
                        if (i % 100 == 0) {
                            System.out.println("clear batch "+i);
                            ps.executeBatch();
                            ps.clearBatch();
                        }
                    }
                    ps.executeBatch();
                    conn.commit();
                } catch (SQLException e) {
                    e.printStackTrace();
                } finally {
                    try {
                        if (ps != null) {
                            ps.close();
                        }
                        if (conn != null) {
                            conn.close();
                        }
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                System.out.println("end"+ (System.currentTimeMillis()-start));
            }


        }

    }
}
excel数据

在这里插入图片描述

数据库结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1027230.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最佳实践:TiDB 业务写变慢分析处理

作者&#xff1a;李文杰 数据架构师&#xff0c;TUG 广州地区活动组织者 在日常业务使用或运维管理 TiDB 的过程中&#xff0c;每个开发人员或数据库管理员都或多或少遇到过 SQL 变慢的问题。这类问题大部分情况下都具有一定的规律可循&#xff0c;通过经验的积累可以快速的定…

9.20号作业实现钟表

1.widget.h #include <QPainter> //画家 #include <QTimerEvent> #include <QTime> #include<QTimer> //定时器类QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Wid…

基于Xml方式Bean的配置-初始化方法和销毁方法

SpringBean的配置详解 Bean的初始化和销毁方法配置 Bean在被实例化后&#xff0c;可以执行指定的初始化方法完成一些初始化的操作&#xff0c;Bean在销毁之前也可以执行指定的销毁方法完成一些操作&#xff0c;初始化方法名称和销毁方法名称通过 <bean id"userService…

Linux 目录结构介绍

对上面的说明: root 目录 &#xff1a; linux 超级权限 root 的主目录 home 目录 &#xff1a; 系统默认的用户主目录&#xff0c;如果添加用户是不指定用户的主目录&#xff0c;默认在/home 下创建与用户同名的文件夹 bin 目录 &#xff1a; 存放系统所需要的重要命令&am…

设计模式:简单工厂、工厂方法、抽象工厂

参考 Java设计模式之创建型&#xff1a;工厂模式详解&#xff08;简单工厂工厂方法抽象工厂&#xff09; - 知乎 工厂方法 以生产手机为例&#xff0c;具体的UML图如下&#xff1a; 这种方法的优点是对于用户来说&#xff0c;不再需要面对具体的生产逻辑&#xff0c;只需要将生…

k8s的安装

我这里使用vmware创建了三台虚拟机&#xff0c;k8s的虚拟机建议最少2核、4G内存&#xff0c;我的电脑配置不高采用的2核、3G的配置&#xff1b; 安装k8s之前需要先安装docker&#xff0c;docker的安装参考&#xff1a;docker的安装及使用_docker的安装和使用_骑士999111的博客-…

光伏电池建模及温度光照的影响曲线MATLAB仿真

微❤关注“电气仔推送”获得资料 模型介绍&#xff1a; 需要MATLAB2018B及以上的版本&#xff01;&#xff01; 首先根据根据环境修正公式搭建光伏电池仿真模型&#xff1a; 温度变化下的IU、PU仿真及曲线&#xff1a; 光照变化下的IU、PU仿真及曲线&#xff1a; 文件说明&a…

SSD上 NVIDIA Jetson Orin NANO系統如何刷

对于AI计算性能高达40TOPS的Jetson Orin Nano开发套件来说&#xff0c;如果缺少性能够好的存储相匹配&#xff0c;会让总体执行效益大打折扣。为此&#xff0c;NVIDIA在Jetson Orin Nano开发套件上配置2个M.2接口&#xff08;如下图&#xff09;&#xff0c;最高能安装2片高速P…

Spring Boot启动源码分析

一&#xff0c;前言 版本&#xff1a;spring-boot-starter-parent版本为2.3.0 Spring Boot项目的启动入口是一个main方法&#xff0c;因此我们从该方法入手即可 二&#xff0c;源码分析 跟踪run方法 /*** SpringApplication的方法* param primarySource 启动类的class* p…

静态顺序表及基本操作具体实现

静态顺序表及几个基本操作 &#x1f391;定义一个顺序表&#x1f391; 初始化——置空顺序表&#x1f391;创建一个顺序表&#x1f391;打印顺序表各结点的值&#x1f38a;&#x1f38a; 顺序表基本操作&#x1f383;头插&#x1f383;尾插&#x1f383;头删&#x1f383;尾删 …

mysql报错:mysql8插入sql关键字“rank”问题

标题 一、背景二、报错展示三、排查四、结论 一、背景 在设计表的需要定义一个排名的字段&#xff0c;于是定义了“rank”字段&#xff0c;使用mybatisplus进行插入的时候&#xff0c;项目报错。 二、报错展示 1、项目插入报错 2、mysql中直接insert报错 三、排查 通过ins…

SpringCloud Gateway--网关服务基本介绍和基本原理

&#x1f600;前言 本篇博文是关于SpringCloud Gateway的基本介绍&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的动力…

快速解决AndroidStudio代码提示失效问题

在编写代码时&#xff0c;代码不自动提示&#xff0c;发现代码自动提示设置正常&#xff0c;所以查询到问题原因在于节能模式的开启&#xff0c;具体解决方式如下&#xff1a; 关闭节能模式 如上图所示&#xff0c;将Power Save Mode前面的对勾去掉&#xff0c;则完成节能模式…

系统检测到您的账户不符合国家相关法律法规或《支付宝用户服务协议》约定,暂时无法签约当前产品

最新一直在开发支付宝小程序&#xff0c;遇到的各种问题颇多&#xff0c;技术上的问题都好解决&#xff0c;开发平台上的问题&#xff0c;真的是让我心力交瘁&#xff0c;自己分析不出原因&#xff0c;打支付宝客服电话永远得不到解答。 现在把自己有一些收获的问题&#xff0…

rk3568环境配置和推理报错: RKNN_ERR_MALLOC_FAIL

前言 最近在部署算法在板子侧遇到的一些问题汇总一下&#xff1a; 一、版本问题 经过测试现在将自己环境配置如下&#xff1a; 本地linux安装rknn-toolkit2-1.5.0 本地Linux使用的miniconda新建的一个python虚拟环境&#xff08;自行网上查找相关方法&#xff09; 安装好自…

Docker Desktop 界面功能介绍,添加国内镜像源

目录 镜像源修改设置 其他偏好设置 镜像源修改设置 默认情况下&#xff0c;Docker Desktop会从Docker Hub下载镜像&#xff0c;但在国内由于网络的原因&#xff0c;下载速度可能较慢&#xff0c;配置国内镜像源可以提速镜像下载。在Docker Desktop中配置镜像源非常简单&…

javaee之黑马乐优商城5

分析一下spu与sku的数据结构 再来说一下什么是spu standard product unit 标准产品单元 :SPU级别的规格参数通常是与整个产品类型或产品系列相关的通用参数。比如华为手机下面的p系列、荣耀系列&#xff0c;都可以标识为spu级别规格参数 sku stock keeping unit 库存保管单位…

flarum 论坛 User Statistics插件修改

此插件在中国使用日期不是很理想&#xff0c;于是决定修改代码 下面是插件信息&#xff1a; User Statistics A Flarum extension. Add some user statistics in flarum posts, this extension require clarkwinkelmann/flarum-ext-likes-received and will be installed au…

.动态内存经典题分析(1)

题目&#xff1a; 请问运⾏Test 函数会有什么样的结果&#xff1f; void GetMemory(char *p) {p (char *)malloc(100); }void Test(void) {char *str NULL;GetMemory(str);strcpy(str, "hello world");printf(str); }int main() {Test();return 0; } 代码分析&a…

面试问题之如何解释微服务

这次的面试还是感觉非常愉快&#xff0c;没有那么憋屈&#xff0c;问的问题也非常有意思。 问题 假设现在有一个人完全不懂微服务&#xff0c;你能和对方解释下什么是微服务吗&#xff1f; 面试回答 这个问题如果要完全回答好&#xff0c;感觉不是那么容易。 什么是微服务 …