Spring Boot MySQL导入导出Excel 教程
引言
在现代的软件开发中,数据的导入和导出是一项常见的任务。在使用Spring Boot和MySQL的开发中,我们经常需要将数据从数据库导出并保存为Excel文件,或者将Excel文件导入到数据库中。本教程将向你展示如何使用Spring Boot和MySQL实现这个功能。
整体流程
下面是整个流程的概览,我们将在后面的章节中逐步详细说明每个步骤。
stateDiagram
[*] --> 导出Excel
导出Excel --> 导入数据
导入数据 --> [*]
步骤一:导出Excel
首先,我们需要从MySQL数据库中获取数据,并将其导出为Excel文件。
1.1 创建实体类
创建一个Java类来表示从数据库中检索到的数据。假设我们有一个名为User
的实体类,其中包含用户的ID、姓名和年龄字段。
public class User {
private Long id;
private String name;
private int age;
// 省略构造方法、getter和setter
}
1.2 创建数据访问层
接下来,我们需要创建一个数据访问层(DAO)来从数据库中检索用户数据。使用Spring Data JPA可以方便地访问数据库。
public interface UserRepository extends JpaRepository<User, Long> {
// 省略其他方法
}
1.3 创建业务逻辑层
然后,我们需要创建一个业务逻辑层(Service)来协调数据访问层和控制层。在这个业务逻辑层中,我们将调用数据访问层的方法来获取用户数据。
@Service
public class UserService {
private final UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public List<User> getAllUsers() {
return userRepository.findAll();
}
}
1.4 创建控制层
接下来,我们需要创建一个控制层(Controller)来处理HTTP请求,并调用业务逻辑层的方法来获取用户数据。
@RestController
@RequestMapping("/users")
public class UserController {
private final UserService userService;
public UserController(UserService userService) {
this.userService = userService;
}
@GetMapping("/export")
public void exportUsersToExcel(HttpServletResponse response) throws IOException {
List<User> users = userService.getAllUsers();
// 创建Excel工作簿
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Users");
// 创建表头
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("ID");
headerRow.createCell(1).setCellValue("Name");
headerRow.createCell(2).setCellValue("Age");
// 填充数据
int rowNum = 1;
for (User user : users) {
Row row = sheet.createRow(rowNum++);
row.createCell(0).setCellValue(user.getId());
row.createCell(1).setCellValue(user.getName());
row.createCell(2).setCellValue(user.getAge());
}
// 将Excel写入响应流
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=users.xlsx");
workbook.write(response.getOutputStream());
workbook.close();
}
}
1.5 配置导出Excel的URL
最后,我们需要在Spring Boot应用程序的配置文件中指定导出Excel的URL。
spring:
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
jpa:
hibernate:
ddl-auto: create
show-sql: true
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL5Dialect
multipart:
enabled: true
步骤二:导入数据
现在我们已经学会了如何将数据导出到Excel文件,接下来我们将学习如何将Excel文件中的数据导入到数据库中。
2.1 创建上传文件的页面
首先,我们需要创建一个页面来上传Excel文件。可以使用HTML和Thymeleaf模板引擎来创建这个页面。
<!DOCTYPE html>
<html xmlns:th="
<head>
<meta charset="UTF-8">
<title>Upload Excel</title>
</head>
<body>
<h1