Java Excel 20万条数据导入数据库

1. 引言

在日常工作和学习中,我们经常需要处理大量的数据,并将这些数据存储到数据库中进行进一步的分析和处理。而Excel作为一种常见的数据格式,经常被用来存储和管理数据。本文将介绍如何使用Java将Excel中的20万条数据快速导入到数据库中,并提供相应的代码示例。

2. 准备工作

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

  • JDK(Java Development Kit)
  • Eclipse(或其他Java开发工具)
  • Apache POI(用于读取Excel数据)
  • 数据库(本文以MySQL为例)

确保你已经安装了JDK和Eclipse,并且已经配置好了Java开发环境。在Eclipse中创建一个新的Java项目,并将Apache POI的jar包添加到项目的classpath中。

3. 读取Excel数据

首先,我们需要使用Apache POI库来读取Excel中的数据。下面是一个简单的代码示例,用于读取Excel中的数据并打印出来:

import java.io.FileInputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelReader {
    public static void main(String[] args) {
        try {
            FileInputStream fis = new FileInputStream("data.xlsx");
            Workbook workbook = new XSSFWorkbook(fis);
            Sheet sheet = workbook.getSheetAt(0);
            
            for (Row row : sheet) {
                for (Cell cell : row) {
                    System.out.print(cell.toString() + "\t");
                }
                System.out.println();
            }
            
            workbook.close();
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,我们首先打开一个Excel文件(假设文件名为data.xlsx),然后打开第一个工作表。接着,我们使用两个嵌套的循环遍历工作表中的所有行和单元格,并打印出每个单元格的值。

4. 导入数据到数据库

一旦我们成功读取了Excel中的数据,接下来就是将这些数据导入到数据库中。在本文中,我们以MySQL数据库为例,演示如何使用Java将数据导入到MySQL数据库。首先,我们需要准备好数据库的连接信息:

String url = "jdbc:mysql://localhost:3306/database_name";
String username = "root";
String password = "password";

请将上述代码中的database_namerootpassword替换为你实际使用的数据库名称、用户名和密码。

然后,我们需要创建一个数据库连接,并将数据插入到数据库中。下面是一个简单的代码示例:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class DatabaseImporter {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/database_name";
        String username = "root";
        String password = "password";
        
        try {
            Connection connection = DriverManager.getConnection(url, username, password);
            
            FileInputStream fis = new FileInputStream("data.xlsx");
            Workbook workbook = new XSSFWorkbook(fis);
            Sheet sheet = workbook.getSheetAt(0);
            
            String insertQuery = "INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?)";
            PreparedStatement statement = connection.prepareStatement(insertQuery);
            
            for (Row row : sheet) {
                statement.setString(1, row.getCell(0).toString());
                statement.setString(2, row.getCell(1).toString());
                statement.setString(3, row.getCell(2).toString());
                statement.executeUpdate();
            }
            
            statement.close();
            workbook.close();
            fis.close();
            connection.close();
        } catch (IOException | SQLException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,我们首先创建了一个数据库连接,然后打开了Excel文件并获取了工作表。接着,我们使用预编译的SQL语句将数据插入到数据库中。最后,我们关闭了数据库连接和Excel文件。

5. 总结

通过本文的介绍,我们学习了如何使用Java将Excel中的20万条数据导入到数据库中。首先,我们使用Apache POI库读取了Excel数据,然后使用JDBC将数据插入到