首页 综合百科文章正文

java批量导入excel到数据库

综合百科 2025年11月21日 09:58 238 admin

高效实现Java批量导入Excel到数据库的完整指南

在数据处理和业务分析过程中,经常需要将大量的数据从Excel文件导入到数据库中,使用Java编程语言进行批量导入操作不仅能够提高数据处理的效率,还能减少人工错误,提升工作效率,本文将详细介绍如何利用Java实现Excel文件到数据库的批量导入。

准备工作

在开始之前,请确保你已经安装了以下工具和库:

java批量导入excel到数据库

  • Java Development Kit (JDK)
  • Excel处理库:Apache POI
  • 数据库连接库:JDBC(如MySQL Connector/J)

环境搭建

添加依赖

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

<dependencies>
    <!-- Apache POI for Excel -->
    <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 JDBC Driver -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.26</version>
    </dependency>
</dependencies>

数据库配置

在项目中创建一个配置文件(如db.properties),包含数据库连接信息:

db.url=jdbc:mysql://localhost:3306/your_database?serverTimezone=UTC
db.user=root
db.password=your_password

实现步骤

读取Excel文件

使用Apache POI库读取Excel文件,并提取数据,以下是一个简单的示例代码,用于读取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.getSheetAt(0);
            for (Row row : sheet) {
                int numCells = row.getLastCellNum();
                String[] cellData = new String[numCells];
                for (int i = 0; i < numCells; i++) {
                    Cell cell = row.getCell(i, Row.MissingCellPolicy.RETURN_BLANK_AS_NULL);
                    cellData[i] = getCellValue(cell);
                }
                data.add(cellData);
            }
        }
        return data;
    }
    private String getCellValue(Cell cell) {
        switch (cell.getCellType()) {
            case STRING: return cell.getStringCellValue();
            case NUMERIC: return Double.toString(cell.getNumericCellValue());
            case BOOLEAN: return Boolean.toString(cell.getBooleanCellValue());
            default: return "";
        }
    }
}

批量插入数据库

使用JDBC将提取的数据批量插入到数据库中,以下是一个简单的示例代码:

java批量导入excel到数据库

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.List;
public class DatabaseWriter {
    private static final String INSERT_SQL = "INSERT INTO your_table (column1, column2) VALUES (?, ?)";
    private PreparedStatement preparedStatement;
    public void batchInsert(List<String[]> data) throws Exception {
        try (Connection connection = DriverManager.getConnection(DBConfig.getUrl(), DBConfig.getUser(), DBConfig.getPassword())) {
            preparedStatement = connection.prepareStatement(INSERT_SQL);
            for (String[] row : data) {
                preparedStatement.setString(1, row[0]); // 根据实际列名修改
                preparedStatement.setString(2, row[1]); // 根据实际列名修改
                preparedStatement.addBatch();
                if (row.length > 2 && row[2] != null) { // 根据实际列数调整条件
                    preparedStatement.setString(3, row[2]); // 根据实际列名修改
                }
            }
            preparedStatement.executeBatch();
        } catch (Exception e) {
            e.printStackTrace();
            throw e;
        } finally {
            if (preparedStatement != null) {
                preparedStatement.close();
            }
        }
    }
}

通过上述步骤,你可以使用Java轻松实现Excel文件到数据库的批量导入操作,在实际开发中,可以根据具体需求对代码进行优化和扩展,例如处理不同的Excel格式、增加错误处理机制等。

标签: 批量导入

发表评论

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