Java实现将Excel导入到MySQL的步骤

简介

在日常开发中,我们经常会遇到需要将Excel文件中的数据导入到MySQL数据库中的需求。本文将详细介绍如何用Java实现这个功能,并给出相应的代码示例。

流程概述

下面的表格展示了整个流程的步骤及其对应的代码实现:

步骤 描述 代码示例
1 读取Excel文件 InputStream inputStream = new FileInputStream("file.xlsx");
2 创建工作簿对象 Workbook workbook = new XSSFWorkbook(inputStream);
3 获取Sheet对象 Sheet sheet = workbook.getSheetAt(0);
4 迭代行并读取数据 for (Row row : sheet) { ... }
5 迭代单元格并获取值 for (Cell cell : row) { ... }
6 构造SQL语句并插入数据 String sql = "INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...)";
7 执行SQL语句 Statement statement = connection.createStatement(); statement.executeUpdate(sql);
8 关闭资源 workbook.close(); inputStream.close(); statement.close(); connection.close();

代码实现

下面是详细的代码实现及其注释说明:

import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelToMySQL {
    public static void main(String[] args) {
        try {
            // 步骤1:读取Excel文件
            InputStream inputStream = new FileInputStream("file.xlsx");

            // 步骤2:创建工作簿对象
            Workbook workbook = new XSSFWorkbook(inputStream);

            // 步骤3:获取Sheet对象
            Sheet sheet = workbook.getSheetAt(0);

            // 步骤4:迭代行并读取数据
            for (Row row : sheet) {
                // 步骤5:迭代单元格并获取值
                Cell cell1 = row.getCell(0); // 第一列
                Cell cell2 = row.getCell(1); // 第二列
                // ... 获取其他单元格的值

                // 步骤6:构造SQL语句并插入数据
                String value1 = cell1.getStringCellValue();
                String value2 = cell2.getStringCellValue();
                // ... 构造其他列的值
                String sql = "INSERT INTO table_name (column1, column2, ...) VALUES ('" + value1 + "', '" + value2 + "', ...)";

                // 步骤7:执行SQL语句
                Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/database_name", "username", "password");
                Statement statement = connection.createStatement();
                statement.executeUpdate(sql);

                // 步骤8:关闭资源
                statement.close();
                connection.close();
            }

            workbook.close();
            inputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

序列图

下面是用mermaid语法绘制的序列图,展示了整个流程的交互过程:

sequenceDiagram
    participant 小白
    participant 开发者
    participant Excel文件
    participant MySQL数据库

    小白->开发者: 请求帮助,如何将Excel导入到MySQL?
    开发者->小白: 提供代码示例和步骤说明
    小白->Excel文件: 读取Excel文件
    Excel文件-->小白: 返回Excel数据
    小白->MySQL数据库: 构造SQL语句并插入数据
    MySQL数据库-->小白: 返回插入结果
    小白->开发者: 完成导入

总结

通过以上的步骤和示例代码,我们可以实现将Excel文件中的数据导入到MySQL数据库中。这个流程可以用于各种数据导入场景,帮助我们提高开发效率和数据处理能力。希望本文对刚入行的小白有所帮助。