Java多线程写入数据到mysql

 

package org.hxl.rds;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;


public class InsertDataMysql {

    static String url = "jdbc:mysql://192.168.1.14:3306/db_admin?useSSL=false";
    static String username = "root";
    static String password = "yeemiao1117";

    public static void InsertData(){
        Connection conn = null;
        PreparedStatement pstmt = null;

        try {
            // 加载和注册JDBC驱动
            //Class.forName("com.mysql.cj.jdbc.Driver");
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(url, username, password);
            // 建立连接
            //Connection conn = DriverManager.getConnection(url, username, password);
            conn.setAutoCommit(false);
            // 如果连接成功,则输出信息
            if (conn != null) {
                System.out.println("Connected to the database successfully!");
            } else {
                System.out.println("Failed to make connection!");
            }

            String sql = "insert into user (name, email) VALUES (?, ?)";
            int count = 0;

            pstmt = conn.prepareStatement(sql);


            for (int i = 0; i < 1000; i++) {
                String name = "hxltest"+ i;
                String email = name + "qq.com";
                pstmt.setString(1, name);
                pstmt.setString(2, email);
                int affectedRows = pstmt.executeUpdate();
                count++;

                if (count % 100 == 0){
                    conn.commit();
                }
            }
            conn.commit();
            // 关闭连接(可选)
            conn.close();

        } catch (ClassNotFoundException e) {
            System.out.println("MySQL JDBC Driver not found.");
            e.printStackTrace();
        } catch (SQLException e) {
            System.out.println("Connection Failed! Check output console");
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        Date startDate = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String startTime = sdf.format(startDate);
        System.out.println("开始时间:" + startTime);

        ExecutorService executorService = Executors.newFixedThreadPool(5);
        for (int i = 0; i < 5; i++) {
            final int threadNum = i;
            executorService.execute(() -> {
                InsertData();
            });
        }

        executorService.shutdown();

        Date endDate = new Date();
        String endTime = sdf.format(endDate);
        System.out.println("结束时间:" + endTime);
    }
}

 

posted @ 2025-06-13 11:28  slnngk  阅读(30)  评论(0)    收藏  举报