Java导入Excel数据到数据库百万数据

引言

在数据处理的过程中,我们常常需要将Excel文件中的数据导入到数据库中进行进一步的分析和处理。当数据量较大时,手动逐行读取并插入数据库的方法效率较低,甚至可能导致内存溢出。本文将介绍如何使用Java语言将Excel文件中的数据快速导入到数据库中,以实现百万数据级别的导入。

准备工作

在开始之前,我们需要准备以下工具和环境:

  • Java开发环境
  • MySQL数据库
  • Apache POI库

Apache POI库

Apache POI是一个用于读写Microsoft Office格式文件(如Excel、Word等)的Java库。我们将使用Apache POI库来读取Excel文件中的数据。

安装Apache POI库

在使用Apache POI库之前,我们需要先导入相关的依赖包。可以通过Maven来管理项目的依赖关系。

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>

实现步骤

步骤1:创建数据库表

首先,我们需要在MySQL中创建一个用于存储Excel数据的表。可以使用以下SQL语句创建一个名为data的表:

CREATE TABLE `data` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `gender` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

步骤2:读取Excel文件

接下来,我们需要使用Apache POI库来读取Excel文件中的数据。以下是读取Excel文件的示例代码:

import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelReader {
    public static void main(String[] args) {
        try {
            // 打开Excel文件
            InputStream inputStream = new FileInputStream("data.xlsx");
            Workbook workbook = new XSSFWorkbook(inputStream);

            // 读取第一个工作表
            Sheet sheet = workbook.getSheetAt(0);
            Iterator<Row> iterator = sheet.iterator();

            while (iterator.hasNext()) {
                Row row = iterator.next();
                Cell cell1 = row.getCell(0);
                Cell cell2 = row.getCell(1);
                Cell cell3 = row.getCell(2);

                // 将数据插入数据库
                insertData(cell1.getStringCellValue(), (int) cell2.getNumericCellValue(), cell3.getStringCellValue());
            }

            // 关闭Excel文件
            workbook.close();
            inputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void insertData(String name, int age, String gender) {
        // TODO: 将数据插入数据库
    }
}

步骤3:插入数据库

在代码示例中,我们将读取到的数据插入数据库的操作放在了insertData方法中。在实际情况下,你需要根据自己的数据库连接方式和插入语句来实现该方法。

步骤4:执行导入

现在,我们可以执行导入操作了。将Excel文件放置在与Java代码相同的目录下,并执行Java程序。程序将读取Excel文件中的数据,并将其插入到数据库中。

总结

本文介绍了如何使用Java语言将Excel文件中的数据导入到数据库中。我们使用了Apache POI库来读取Excel文件,并提供了示例代码来演示如何实现数据导入。

虽然本文的示例代码只是将数据插入数据库,但你可以根据自己的需求对代码进行扩展,例如对数据进行处理、校验等操作。希望本文对你在处理大量数据时有所帮助。

关系图

以下是数据表之间的关系图:

erDiagram
    data ||--o{ excel

参考资料

  • Apache POI官方网站:[