从Excel导入数据到数据库的Java实现

在实际项目开发中,有时候我们需要从Excel表格中导入数据到数据库中,这在数据迁移、数据同步等场景下非常常见。本文将介绍如何使用Java来实现从Excel导入数据到数据库的功能,并提供相应的代码示例。

准备工作

在开始之前,我们需要准备以下工作:

  1. Excel表格:包含需要导入的数据。
  2. 数据库:用于存储导入的数据。
  3. Java开发环境:IDE、JDK等。

导入数据流程

下面我们将通过一个简单的示例来演示从Excel导入数据到数据库的流程:

序列图

sequenceDiagram
    participant Excel
    participant Java
    participant Database

    Excel->>Java: 读取Excel数据
    Java->>Database: 将数据插入数据库

数据库表设计

在本示例中,假设我们要导入的数据是学生信息,我们需要创建一个学生信息表来存储这些数据。

erDiagram
    STUDENT {
        int student_id
        varchar student_name
        varchar student_email
    }

Java代码实现

首先,我们需要使用Apache POI库来读取Excel数据,然后使用JDBC连接数据库并将数据插入到数据库中。

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

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

public class ExcelToDatabase {

    public static void main(String[] args) {
        String jdbcUrl = "jdbc:mysql://localhost:3306/mydb";
        String username = "root";
        String password = "root";

        try {
            Connection connection = DriverManager.getConnection(jdbcUrl, username, password);
            PreparedStatement statement = connection.prepareStatement("INSERT INTO STUDENT (student_name, student_email) VALUES (?, ?)");

            FileInputStream file = new FileInputStream(new File("students.xlsx"));
            Workbook workbook = WorkbookFactory.create(file);
            Sheet sheet = workbook.getSheetAt(0);

            for (Row row : sheet) {
                String name = row.getCell(0).getStringCellValue();
                String email = row.getCell(1).getStringCellValue();

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

            connection.close();
            file.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们首先建立了与数据库的连接,然后使用PreparedStatement将Excel中的数据插入到数据库中。

总结

通过本文的介绋,我们学习了如何使用Java来实现从Excel导入数据到数据库的功能。这对于实际项目中的数据迁移、数据同步等场景非常有用。希望本文能对你有所帮助,谢谢阅读!