将后缀是.csv文件导入数据库(两种方法)


第一种方法是提供指定路径导入(filePath

/**
     * 读取csv文件,批量插入到数据库中
     */
//    @PostMapping("/sampleInportCsv")
    public AjaxResult importCsv(@RequestParam("name") String name,
                                @RequestParam("multipartFile") MultipartFile file){
        String filePath = uploadToCsv+name;
        if (null == file) {
            return AjaxResult.error("上传文件为空");
        }
//        String filePath = "D:/新建文件夹/新建文件夹新建文件夹新建文件夹/Exp.csv";
        try {
            // 创建CSV读对象
            CsvReader csvReader = new CsvReader(filePath, ',', Charset.forName("GBK"));
            // 读表头
            csvReader.readHeaders();
            BizLisResult bizLisResult = new BizLisResult();
            while (csvReader.readRecord()){
                // 读一整行
                System.out.println(csvReader.getRawRecord());
                String[] readRaw = csvReader.getRawRecord().split(",");
                if (readRaw.length == 0){
                    break;
                }
                bizLisResult.setOrganizationId(Long.parseLong(readRaw[1]));
                bizLisResult.setSampleNo(readRaw[2]);
                bizLisResult.setTestNo(readRaw[4]);
                bizLisResult.setTestName(readRaw[5]);
                bizLisResult.setSampleTypeCode(readRaw[6]);
                bizLisResult.setSampleTypeName(readRaw[7]);
                bizLisResult.setTestResult(readRaw[8]);
                // 读这行的某一列
//                System.out.println(csvReader.get("Link"));
                logger.info("仪器传值入参"+bizLisResult);调用接口处理数据不用可以删掉
                // 对仪器传回数据进行处理
                bizLisResultService.uploadResult(bizLisResult);同上句
                // 写入结果信息表
                if (bizLisResult.getTestNo() != null) {
                    bizLisResultService.insertYQ(bizLisResult);同上句
                }else {
                    continue;
                }
//                bizLisResultService.insertBizLisResult(bizLisResult);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
//        List<BizLisResult> list = bizLisResultService.selectBizLisResultList(bizLisResult);
//        List<BizLisSample> list = bizLisSampleService.getCsvFileContent(file,groupId,itemIds);
//        return toAjax(bizLisSampleService.excelSampleMore(list));
        return AjaxResult.success("ok!");
    }

第二种是根据前端传来的 MultipartFile 来写入数据库

@PostMapping("/sampleInportCsv")
    public AjaxResult importCsv2(@RequestParam("name") String name,
                                @RequestParam("multipartFile") MultipartFile multipartFile)  {
        BufferedReader reader= null;
        try {
            reader = new BufferedReader(new InputStreamReader( multipartFile.getInputStream(),"GBK"));
            reader.readLine();//第一行信息,为标题信息,不用,如果需要,注释掉
        } catch (IOException e) {
            e.printStackTrace();
        }
        String line = null;
        BizLisResult bizLisResult = new BizLisResult();
        try {
            while((line=reader.readLine())!=null){
                // 读一整行
                System.out.println(line);
                String[] readRaw = line.split(",");
                if (readRaw.length == 0){
                    break;
                }
                bizLisResult.setOrganizationId(Long.parseLong(readRaw[1]));
                bizLisResult.setSampleNo(readRaw[2]);
                bizLisResult.setTestNo(readRaw[4]);
                bizLisResult.setTestName(readRaw[5]);
                bizLisResult.setSampleTypeCode(readRaw[6]);
                bizLisResult.setSampleTypeName(readRaw[7]);
                bizLisResult.setTestResult(readRaw[8]);
                logger.info("仪器传值入参"+bizLisResult);调用接口处理数据,不用就删了
                // 对仪器传回数据进行处理
                bizLisResultService.uploadResult(bizLisResult);同上句
                // 写入结果信息表
                if (bizLisResult.getTestNo() != null) {
                    bizLisResultService.insertYQ(bizLisResult);同上句
                }else {
                    continue;
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return AjaxResult.success("ok");
    }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM