使用springboot 将csv无表头文件数据存入postgresql数据库
时间: 2023-07-16 13:14:15 浏览: 252
首先需要在Spring Boot项目中添加PostgreSQL的依赖,比如:
```
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.19</version>
</dependency>
```
然后创建一个实体类来映射CSV文件中的数据:
```java
@Entity
@Table(name = "my_table")
public class MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String field1;
private String field2;
// getters and setters
}
```
接下来创建一个Service类,用于读取CSV文件并将数据存入数据库:
```java
@Service
public class MyService {
@Autowired
private MyRepository repository;
public void saveCsvDataToDatabase(String filePath) throws IOException {
CSVReader reader = new CSVReader(new FileReader(filePath));
String[] line;
while ((line = reader.readNext()) != null) {
MyEntity entity = new MyEntity();
entity.setField1(line[0]);
entity.setField2(line[1]);
repository.save(entity);
}
reader.close();
}
}
```
注意上述代码中的MyRepository是一个继承自JpaRepository的接口,用于操作数据库的增删改查。
最后在Controller中调用MyService中的方法即可:
```java
@RestController
public class MyController {
@Autowired
private MyService service;
@PostMapping("/csv")
public void saveCsvDataToDatabase(@RequestParam("file") MultipartFile file) throws IOException {
File tempFile = File.createTempFile("temp", ".csv");
file.transferTo(tempFile);
service.saveCsvDataToDatabase(tempFile.getAbsolutePath());
}
}
```
上述代码中的Controller中定义了一个接收MultipartFile类型的参数的POST请求,然后将其保存到临时文件中,最后调用MyService中的方法来将数据存入数据库。
阅读全文