首页 运维百科文章正文

java将excel数据写入数据库

运维百科 2025年11月19日 18:41 239 admin

Java如何将Excel数据高效写入数据库?

在当今信息化时代,数据的处理与管理变得尤为重要,对于许多企业而言,Excel作为一种广泛使用的数据存储格式,承载了大量的业务信息,随着数据量的激增,手动或半自动地将Excel数据迁移至数据库中变得越来越低效,本文将介绍如何使用Java编程语言,结合Apache POI库和JDBC技术,实现Excel数据到数据库的高效迁移。

准备工作

  1. 安装Java开发环境:确保你的计算机上安装了Java Development Kit (JDK),以及一个合适的IDE(如IntelliJ IDEA或Eclipse)。

    java将excel数据写入数据库

  2. 引入依赖:使用Maven或Gradle作为项目管理工具,添加Apache POI和JDBC相关的依赖,以下是使用Maven的例子:

    java将excel数据写入数据库

    <dependencies>
        <!-- Apache POI for handling Excel files -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>5.2.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>5.2.3</version>
        </dependency>
        <!-- MySQL Connector for JDBC -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.29</version>
        </dependency>
    </dependencies>

读取Excel文件

利用Apache POI库,我们可以轻松地读取Excel文件中的数据,假设我们要处理的是一个简单的CSV文件,其中包含用户信息:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
public class ExcelReader {
    public List<String[]> readExcel(String filePath) throws Exception {
        List<String[]> data = new ArrayList<>();
        try (FileInputStream fis = new FileInputStream(filePath); Workbook workbook = new XSSFWorkbook(fis)) {
            Sheet sheet = workbook.getSheetAt(0);
            for (Row row : sheet) {
                String[] cellData = new String[row.getLastCellNum()];
                for (Cell cell : row) {
                    cellData[cell.getColumnIndex()] = cell.toString();
                }
                data.add(cellData);
            }
        }
        return data;
    }
}

写入数据库

我们需要将读取到的数据写入数据库,这里以MySQL为例,展示如何通过JDBC执行这一操作:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class DatabaseWriter {
    private static final String URL = "jdbc:mysql://localhost:3306/your_database";
    private static final String USER = "your_username";
    private static final String PASSWORD = "your_password";
    public void writeToDatabase(List<String[]> data) throws SQLException {
        String insertQuery = "INSERT INTO users (name, email) VALUES (?, ?)";
        try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
             PreparedStatement pstmt = conn.prepareStatement(insertQuery)) {
            for (String[] record : data) {
                pstmt.setString(1, record[0]); // Assuming name is in the first column
                pstmt.setString(2, record[1]); // Assuming email is in the second column
                pstmt.executeUpdate();
            }
        }
    }
}

整合并测试

我们将上述两部分整合起来,从Excel文件中读取数据并写入数据库:

public class MainApplication {
    public static void main(String[] args) {
        String excelFilePath = "path/to/your/excel/file.xlsx";
        ExcelReader reader = new ExcelReader();
        DatabaseWriter writer = new DatabaseWriter();
        try {
            List<String[]> data = reader.readExcel(excelFilePath);
            writer.writeToDatabase(data);
            System.out.println("Data has been successfully written to the database!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

步骤展示了如何使用Java将Excel数据写入数据库的基本流程,根据实际需求的不同,你可能需要调整数据读取逻辑、查询语句或错误处理机制等。

标签: Java

发表评论

丫丫技术百科 备案号:新ICP备2024010732号-62