springboot 导入excel数据到数据库中
时间: 2023-10-06 08:12:36 浏览: 170
有多种方法可以将Excel数据导入到Spring Boot应用程序中的数据库中。以下是其中一种方法:
1. 创建一个包含Excel文件的文件夹。
2. 使用Apache POI库来读取Excel文件中的数据。您可以使用以下依赖关系:
```
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
```
3. 创建一个Spring Boot REST控制器,该控制器将接受Excel文件并将其数据保存到数据库中。以下是一个简单的示例:
```java
@RestController
public class ExcelController {
@Autowired
private MyRepository myRepository;
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
try {
InputStream inputStream = file.getInputStream();
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet sheet = workbook.getSheetAt(0);
Iterator<Row> iterator = sheet.iterator();
while (iterator.hasNext()) {
Row currentRow = iterator.next();
MyEntity myEntity = new MyEntity();
myEntity.setName(currentRow.getCell(0).getStringCellValue());
myEntity.setDescription(currentRow.getCell(1).getStringCellValue());
myRepository.save(myEntity);
}
return "File uploaded successfully";
} catch (Exception e) {
return "File upload failed";
}
}
}
```
4. 创建一个实体类来映射数据库表中的数据。例如,如果您要将数据保存在名为“my_table”的表中,则可以创建以下实体类:
```java
@Entity
@Table(name = "my_table")
public class MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
@Column(name = "description")
private String description;
// getters and setters
}
```
5. 创建一个Spring Boot JPA存储库来管理实体类和数据库之间的交互。例如,您可以创建以下存储库:
```java
@Repository
public interface MyRepository extends JpaRepository<MyEntity, Long> {
}
```
6. 启动Spring Boot应用程序,并使用任何HTTP客户端(例如Postman)来上传Excel文件。您可以使用以下URL:
```
http://localhost:8080/upload
```
7. 检查数据库表以确保数据已成功导入。
请注意,此示例仅适用于包含两个列的简单Excel文件。如果您的Excel文件包含更多列或复杂的数据结构,则需要进行适当的更改。
阅读全文