MySQL数据库实践:用Java生成100万条测试数据

南春编程 2024-05-14 02:08:40

具体实现过程在对应的视频里做了说明,视频名称与文章名称一样,如果有需要可以去看下视频,下面直接把相关的代码写出来,仅供参考。

创建了对应的数据库及表,users表的创建语句如下:

CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE NOT NULL);

如果你使用Maven,需在pom.xml文件中加入MySQL驱动的依赖:

<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.31</version> </dependency></dependencies>

具体实现代码:

import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;/** * @Description * @Author test * @Date 2024-05-12 16:02 **/public CreateTestData { private static final String URL = "jdbc:mysql://localhost:3308/test?useSSL=false&serverTimezone=UTC"; private static final String USER = "test"; private static final String PASSWORD = "123456"; public static void main(String[] args) { try { Connection conn = DriverManager.getConnection(URL, USER, PASSWORD); String sql = "INSERT INTO users (username, email) VALUES (?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); conn.setAutoCommit(false); // 关闭自动提交 // 程序开始时间 long startTime = System.currentTimeMillis(); for (int i = 1; i <= 1000000; i++) { String username = "user" + i; String email = username + "@example.com"; pstmt.setString(1, username); pstmt.setString(2, email); pstmt.addBatch(); if (i % 1000 == 0) { // 每1000条执行一次批处理 pstmt.executeBatch(); conn.commit(); // 提交事务 } } // 处理剩余不足batchSize的记录 pstmt.executeBatch(); conn.commit(); pstmt.close(); conn.close(); // 程序结束时间 long endTime = System.currentTimeMillis(); // 计算并打印程序执行时间 long executionTime = endTime - startTime; System.out.println("程序执行时间: " +executionTime+ " 毫秒"+" 转换成分钟:"+ (executionTime/1000)/60 +"分钟"); System.out.println("数据插入完成!"); } catch (Exception e) { e.printStackTrace(); } }}

如果有用,请点赞+关注,谢谢!

0 阅读:50

南春编程

简介:感谢大家的关注