轻松掌握Java:如何高效利用Excel进行数据库管理

引言
在Java开发中,经常需要处理数据库数据。有时,我们需要将数据库数据导出到Excel文件,或者从Excel文件中导入数据到数据库。使用Java进行这些操作可以提高工作效率,以下是详细的方法和步骤。
环境准备
在开始之前,请确保你已经安装了以下工具和库:
Java Development Kit (JDK)
Spring Boot
Apache POI
MySQL
项目结构
假设我们的项目结构如下:
productmanage
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── ts
│ │ │ ├── controller
│ │ │ │ └── ProductAdInfoController.java
│ │ │ ├── service
│ │ │ │ └── ProductService.java
│ │ │ └── utils
│ │ │ └── ExcelUtils.java
│ │ └── resources
│ │ └── application.properties
│ └── pom.xml
依赖配置
在
pom.xml
文件中添加Apache POI的依赖:



org.apache.poi
poi-ooxml
4.1.2


数据库导出Excel
以下是一个使用Java和Apache POI将MySQL数据库中的数据导出到Excel文件的示例:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class ExcelExport {
public static void main(String[] args) throws Exception {
// 创建Excel工作簿
Workbook workbook = new XSSFWorkbook();
// 创建工作表
Sheet sheet = workbook.createSheet(“Database Data”);

// 创建数据库连接
Connection connection = DriverManager.getConnection(“jdbc:mysql://localhost:3306/database_name”, “username”, “password”);

// 创建SQL查询
PreparedStatement statement = connection.prepareStatement(“SELECT * FROM table_name”);

// 执行查询
ResultSet resultSet = statement.executeQuery();

// 获取列名
ResultSetMetaData metaData = resultSet.getMetaData();
int columnCount = metaData.getColumnCount();

// 创建表头
Row header = sheet.createRow(0);
for (int i = 1; i <= columnCount; i++) { Cell cell = header.createCell(i - 1); cell.setCellValue(metaData.getColumnName(i)); } // 填充数据 int rowNum = 1; while (resultSet.next()) { Row row = sheet.createRow(rowNum++); for (int i = 1; i <= columnCount; i++) { Cell cell = row.createCell(i - 1); cell.setCellValue(resultSet.getString(i)); } } // 写入文件 FileOutputStream outputStream = new FileOutputStream("database_data.xlsx"); workbook.write(outputStream); workbook.close(); outputStream.close(); connection.close(); statement.close(); resultSet.close(); } } Excel导入数据库 以下是一个使用Java和Apache POI将Excel文件中的数据导入到MySQL数据库的示例: import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io.FileInputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class ExcelImport { public static void main(String[] args) throws Exception { // 读取Excel文件 FileInputStream inputStream = new FileInputStream(new File("database_data.xlsx")); Workbook workbook = new XSSFWorkbook(inputStream); Sheet sheet = workbook.getSheetAt(0); // 创建数据库连接 Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/database_name", "username", "password"); // 创建SQL插入语句 PreparedStatement statement = connection.prepareStatement("INSERT INTO table_name (column1, column2) VALUES (?, ?)"); // 遍历Excel数据 for (Row row : sheet) { if (row.getRowNum() == 0) { continue; // 跳过表头 } for (Cell cell : row) { switch (cell.getCellType()) { case STRING: statement.setString(1, cell.getStringCellValue()); break; case NUMERIC: statement.setDouble(1, cell.getNumericCellValue()); break; // 添加其他数据类型处理 } // 设置第二个参数 // ... // 执行插入 statement.executeUpdate(); } } // 关闭资源 workbook.close(); inputStream.close(); connection.close(); statement.close(); } } 总结 通过上述示例,我们可以看到如何使用Java和Apache POI库将MySQL数据库数据导出到Excel文件,以及如何将Excel文件中的数据导入到MySQL数据库。这些操作可以大大提高数据库管理的效率。