spring mvc读取csv文件到数据库代码
时间: 2023-10-06 07:11:08 浏览: 56
以下是使用Spring MVC将CSV文件中的数据读取到数据库的代码示例:
1. 定义实体类
首先,定义一个实体类来存储CSV文件中的数据。示例实体类如下:
```java
public class CsvData {
private String name;
private String email;
private String phone;
// getters and setters
}
```
2. 创建CSV文件上传表单
在前端创建一个表单,用于上传CSV文件。示例代码如下:
```html
<form method="post" action="/upload" enctype="multipart/form-data">
<input type="file" name="file" />
<button type="submit">Upload</button>
</form>
```
3. 创建Controller
创建一个Controller,处理上传CSV文件的请求并将数据存储到数据库中。示例代码如下:
```java
@Controller
public class CsvController {
@Autowired
private CsvService csvService;
@PostMapping("/upload")
public String uploadCsv(@RequestParam("file") MultipartFile file) {
try {
List<CsvData> csvDataList = csvService.readCsv(file.getInputStream());
csvService.saveCsvData(csvDataList);
return "success";
} catch (Exception e) {
e.printStackTrace();
return "error";
}
}
}
```
4. 创建Service
创建一个Service,用于读取CSV文件中的数据并将其存储到数据库中。示例代码如下:
```java
@Service
public class CsvService {
@Autowired
private CsvRepository csvRepository;
public List<CsvData> readCsv(InputStream inputStream) throws IOException {
List<CsvData> csvDataList = new ArrayList<>();
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream))) {
String line;
while ((line = bufferedReader.readLine()) != null) {
String[] data = line.split(",");
CsvData csvData = new CsvData();
csvData.setName(data[0]);
csvData.setEmail(data[1]);
csvData.setPhone(data[2]);
csvDataList.add(csvData);
}
}
return csvDataList;
}
public void saveCsvData(List<CsvData> csvDataList) {
csvRepository.saveAll(csvDataList);
}
}
```
5. 创建Repository
创建一个Repository,用于将CSV文件中的数据存储到数据库中。示例代码如下:
```java
public interface CsvRepository extends JpaRepository<CsvData, Long> {
// empty
}
```
这样,当用户上传CSV文件时,Controller会调用Service来读取CSV文件中的数据并将其存储到数据库中。