首页 综合百科文章正文

java 读取excel写入数据库

综合百科 2025年11月21日 00:02 238 admin

Java实现Excel读取与数据库写入的高效方法

在当今数据驱动的时代,处理和分析大量数据已成为企业决策的重要依据,Excel作为一种广泛使用的数据存储格式,其便捷性和易操作性使得它成为数据交换的首选工具之一,随着数据量的不断增长,手动将Excel中的数据导入到数据库中变得越来越低效且容易出错,掌握如何利用Java编程语言自动完成这一过程显得尤为重要,本文将详细介绍如何使用Java读取Excel文件并将其数据写入数据库,旨在帮助开发者提高工作效率,减少人为错误。

java 读取excel写入数据库

准备工作

在进行Java程序开发之前,需要确保已经安装了以下软件和库:

  • JDK(Java Development Kit):用于编译和运行Java代码。
  • Apache POI:一个强大的Java库,用于读写Microsoft Office格式的文件,包括Excel。
  • 数据库连接池:如HikariCP或C3P0,以提高数据库访问效率。
  • 目标数据库:MySQL、Oracle等,根据实际需求选择合适的数据库系统。

读取Excel文件

我们需要从Excel文件中提取数据,假设我们使用的是.xlsx格式的Excel文件,并且想要读取其中名为“DataSheet”的工作表,以下是一段示例代码,演示了如何使用Apache POI库来实现这一功能:

java 读取excel写入数据库

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.getSheet("DataSheet");
            for (Row row : sheet) {
                int cellCount = row.getLastCellNum();
                String[] rowData = new String[cellCount];
                for (int i = 0; i < cellCount; i++) {
                    rowData[i] = row.getCell(i).toString();
                }
                data.add(rowData);
            }
        }
        return data;
    }
}

将数据写入数据库

我们将读取到的数据存储到数据库中,这里以MySQL为例进行说明,确保已经在数据库中创建了相应的表结构,可以使用JDBC API来执行SQL语句,将数据插入到数据库中,下面是一个示例代码片段:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.List;
public class DatabaseWriter {
    private static final String URL = "jdbc:mysql://localhost:3306/yourdatabase";
    private static final String USER = "username";
    private static final String PASSWORD = "password";
    public void writeToDatabase(List<String[]> data) throws Exception {
        String insertQuery = "INSERT INTO your_table (column1, column2, ...) VALUES (?, ?, ...)";
        try (Connection connection = DriverManager.getConnection(URL, USER, PASSWORD);
             PreparedStatement preparedStatement = connection.prepareStatement(insertQuery)) {
            for (String[] row : data) {
                for (int i = 0; i < row.length; i++) {
                    preparedStatement.setString(i + 1, row[i]);
                }
                preparedStatement.executeUpdate();
            }
        }
    }
}

整合流程

最后一步是将上述两个步骤结合起来,形成一个完整的工作流程,可以创建一个主类来调用这些方法:

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

通过这种方式,我们不仅能够自动化地处理大量的数据迁移任务,而且还能保证整个过程的一致性和准确性,这种方法还可以轻松地扩展到其他类型的数据处理场景中,比如从CSV文件导入数据、批量更新数据库记录等。

标签: Java Excel

发表评论

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