MySQL 一键导入 Excel 数据的实现

在现代软件开发中,从 Excel 导入数据到 MySQL 数据库是一项常见的任务。对于刚入行的新手来说,这可能会觉得比较复杂,下面我将为你详细说明整个过程以及每一步需要的代码。我们会借助一些工具和技术来完成这一目标。

流程表

下面是整个导入流程的步骤表。

| 步骤     | 内容                                       |
|----------|------------------------------------------|
| 1        | 准备 Excel 文件(确保格式正确)                     |
| 2        | 安装必要的工具(如 Apache POI 和 MySQL Connector) |
| 3        | 创建数据库和数据表                              |
| 4        | 编写 Java 代码读取 Excel 并插入 MySQL               |
| 5        | 执行代码,实现数据导入                          |

每一步的详细说明

步骤 1: 准备 Excel 文件

首先,确保你的 Excel 文件是符合要求的格式。例如,文件中应包含列标题,且每一列的数据类型应与 MySQL 数据表的数据类型相匹配。

步骤 2: 安装必要的工具

我们使用 Java 编程语言来完成数据导入工作,因此需要确保以下依赖包已添加到你的项目中:

  • Apache POI:用于读取 Excel 文件
  • MySQL Connector:用于连接 MySQL 数据库

在 Maven 项目中,你可以在 pom.xml 文件中添加如下依赖:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.3</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.32</version>
</dependency>

步骤 3: 创建数据库和数据表

使用以下 SQL 代码创建一个新的数据库和数据表。

CREATE DATABASE IF NOT EXISTS excel_import;

USE excel_import;

CREATE TABLE IF NOT EXISTS users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100),
    age INT
);

步骤 4: 编写 Java 代码

下面是用于读取 Excel 文件并将数据插入到 MySQL 的 Java 程序示例:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class ExcelToMySQL {

    public static void main(String[] args) {
        String excelFilePath = "data.xlsx"; // Excel 文件路径
        String jdbcURL = "jdbc:mysql://localhost:3306/excel_import"; // MySQL 连接 URL
        String username = "your_username"; // 替换为你的数据库用户名
        String password = "your_password"; // 替换为你的数据库密码

        try {
            FileInputStream inputStream = new FileInputStream(excelFilePath);
            Workbook workbook = new XSSFWorkbook(inputStream);
            Sheet firstSheet = workbook.getSheetAt(0);
            Connection connection = DriverManager.getConnection(jdbcURL, username, password);

            String sql = "INSERT INTO users (name, email, age) VALUES (?, ?, ?)";
            PreparedStatement statement = connection.prepareStatement(sql);

            for (Row row : firstSheet) {
                if (row.getRowNum() == 0) continue; // 跳过标题行
                String name = row.getCell(0).getStringCellValue();
                String email = row.getCell(1).getStringCellValue();
                int age = (int) row.getCell(2).getNumericCellValue();

                statement.setString(1, name);
                statement.setString(2, email);
                statement.setInt(3, age);
                statement.executeUpdate();
            }

            workbook.close();
            connection.close();
            System.out.println("数据导入成功!");

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  • FileInputStream:用于读取 Excel 文件。
  • WorkbookSheet:执行对 Excel 表格的操作。
  • DriverManager.getConnection:用于与 MySQL 数据库建立连接。
  • PreparedStatement:用于执行插入 SQL 语句。

步骤 5: 执行代码

编译并运行这个 Java 程序,它会直接读取指定的 Excel 文件并将数据插入 MySQL 数据库。

关系图

为更好地理解数据结构,以下是一个 ER 图来表示数据库中的表结构:

erDiagram
    USERS {
        int id PK
        string name
        string email
        int age
    }

结尾

通过以上步骤,我们成功实现了从 Excel 文件中将数据导入到 MySQL 数据库的过程。只要按照流程逐步进行并配置必要的工具,就能轻松完成这项任务。希望这篇文章能对你有所帮助,祝你在数据库学习旅途中顺利前行!