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_name
、root
和password
替换为你实际使用的数据库名称、用户名和密码。
然后,我们需要创建一个数据库连接,并将数据插入到数据库中。下面是一个简单的代码示例:
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将数据插入到