怎么运用Java实现把Excel中的数据导入MySQL

如何使用Java实现将Excel数据导入MySQL

导入数据是我们在处理大量数据时经常需要做的工作。本文将通过以下步骤介绍如何使用Java将Excel中的数据导入MySQL。

1. 准备工作

首先需要准备好以下工具:

  • MySQL数据库
  • Java编程环境(如Eclipse或IntelliJ IDEA)
  • JDBC驱动程序(我们使用MySQL官方提供的JDBC驱动程序)
  • Apache POI库(用于读取Excel文件的Java库)

2. 创建MySQL表

我们需要先在MySQL中创建一个表来保存Excel数据。表的结构应该与Excel文件中的数据结构相匹配。


CREATE TABLE `excel_data` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `age` int(11) NOT NULL,
  `email` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

3. 读取Excel文件

我们使用Apache POI库来读取Excel文件。首先需要将poi和poi-ooxml库添加到项目中。

这里假设Excel文件名为data.xlsx,它包含的数据表格名称为sheet1。


FileInputStream file = new FileInputStream(new File("data.xlsx"));
Workbook workbook = new XSSFWorkbook(file);
Sheet sheet = workbook.getSheet("sheet1");
Iterator<Row> rowIterator = sheet.iterator();

while (rowIterator.hasNext()) {
  Row row = rowIterator.next();
  // 获取单元格内容并插入数据库
}

4. 插入数据到MySQL

在读取Excel文件的过程中,我们获取了每一行的数据。现在我们需要将数据插入到MySQL表中。

我们使用JDBC驱动程序来连接MySQL数据库,并使用PreparedStatement来构建和执行SQL语句。


String sql = "INSERT INTO excel_data (name, age, email) VALUES (?, ?, ?)";
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");
PreparedStatement statement = connection.prepareStatement(sql);

while (rowIterator.hasNext()) {
  Row row = rowIterator.next();
  // 读取单元格内容
  String name = row.getCell(0).getStringCellValue();
  int age = (int) row.getCell(1).getNumericCellValue();
  String email = row.getCell(2).getStringCellValue();

  // 设置参数并执行SQL语句
  statement.setString(1, name);
  statement.setInt(2, age);
  statement.setString(3, email);
  statement.executeUpdate();
}

// 关闭连接
connection.close();

总结

本文介绍了如何使用Java将Excel中的数据导入到MySQL中。我们使用了Apache POI库来读取Excel文件,JDBC驱动程序连接MySQL数据库,并使用PreparedStatement构建和执行SQL语句。这个过程中需要注意Excel文件的结构与MySQL表的结构应该相匹配,字段的顺序和数据类型应该一致。

晓白博客网版权所有,原文地址https://www.xbnb.cn/6920
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 如有资源失效请在下面及时反馈,谢谢!! 抢沙发

请登录后发表评论

    请登录后查看评论内容