MultipartFile上传csv和excel文件保存到数据库中

springMVC中MultipartFile接收文件:

导入CSV文件:csv->json->list<类>

    public List<T> readCsv(MultipartFile file){
        List<T> list = new ArrayList<T>();

        if (!file.isEmpty()){
            InputStreamReader isr = null;
            BufferedReader br = null;
            try {
                isr = new InputStreamReader(file.getInputStream());
                br = new BufferedReader(isr);
                String line = null;
                List<List<String>> strs = new ArrayList<List<String>>();
                while ((line = br.readLine()) != null){
                    strs.add(Arrays.asList(line.split(",")));
                }
                JSONArray array = toJsonArray(strs);
                list = array.toJavaList(T.class);
            } catch (IOException e) {
               //
            }finally
  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
首先,你需要添加以下依赖: ```xml <dependency> <groupId>com.opencsv</groupId> <artifactId>opencsv</artifactId> <version>5.0</version> </dependency> ``` 然后,你可以编写一个CSV文件读取器,读取CSV文件并将其转换为Java对象。代码如下: ```java public class CsvReader { public List<MyObject> readCsv(String filePath) throws IOException { FileReader fileReader = new FileReader(filePath); CSVReader csvReader = new CSVReaderBuilder(fileReader) .withSkipLines(1) .build(); List<String[]> data = csvReader.readAll(); List<MyObject> objects = new ArrayList<>(); for (String[] row : data) { MyObject object = new MyObject(); object.setField1(row[0]); object.setField2(row[1]); // set other fields objects.add(object); } return objects; } } ``` 其,`MyObject` 是你要存储到数据库的Java对象。 接下来,你可以编写一个服务类,将Java对象存储到数据库。代码如下: ```java @Service public class MyService { @Autowired private MyRepository repository; public void saveObjects(List<MyObject> objects) { repository.saveAll(objects); } } ``` 其,`MyRepository` 是你的JPA仓库,用于将Java对象映射为数据库表。 最后,你可以编写一个Controller,将整个流程串起来。代码如下: ```java @RestController public class MyController { @Autowired private CsvReader csvReader; @Autowired private MyService service; @PostMapping("/upload") public void upload(@RequestParam("file") MultipartFile file) throws IOException { String filePath = "/tmp/" + file.getOriginalFilename(); file.transferTo(new File(filePath)); List<MyObject> objects = csvReader.readCsv(filePath); service.saveObjects(objects); } } ``` 在这个例子,我们假设你上CSV文件只有两列,分别是字段1和字段2。你需要根据实际情况修改代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值