需求:针对同一个表格多次导入是否要做判断(此项目是用得若依)
创始人
2024-03-03 05:21:37
0

每次上传表时,将上传的表名与以往上传的表名做对比,如果相同,则提示'表已经有记录,是否上传相同表'并结束此方法。

实现思路:

首先,每次上传表都要把表明记录一下,可以新建一个表(数据库表),专门用来存储表名。

之所以不用数据记录,是因为项目关闭,数组里的记录就空了。

 然后我们分析代码:

package com.jhsoft.product.wages.controller;import com.jhsoft.product.util.ReadExcel;
import com.jhsoft.product.wages.service.WorkExcelService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;import java.util.List;
import java.util.Map;@Controller
@RequestMapping("/jh_product/workexcel")
public class WorkExcelController extends BaseController {@Autowiredprivate WorkExcelService workExcelService;@PostMapping("/import")@ResponseBody@CrossOriginpublic AjaxResult importworkExcel(@RequestPart("file") MultipartFile file) {//创建处理EXCEL的类ReadExcel readExcel = new ReadExcel();//解析excel,获取上传的事件单List> beExamList = readExcel.getExcelInfo(file);String message = workExcelService.importworkExcel(beExamList);return AjaxResult.success(message);}

 上面这个controller文件里面记录的是:

List> beExamList = readExcel.getExcelInfo(file);

工具类readExcel  获取文件(file),然后,将结果给到beExamList

这一步是获取文件,然后我们去到具体的readExcel实现类,看文件名处理过程

 

 通过以上图片,我们知道,他记录的标题是stringCellValue,然后我们找一下标题保存到了哪里。

 他放到了map集合里面,我们再找一下map集合是那个

 好,到这,我们知道工具类中处理过后的标题是啥了,然后,我们去实现类impl里面将这个标题添加到数据库表(记录表名称的那个表),然后在比对每次上传的数据是否在数据库表有记录。

1.对应数据库表,添加mapper和mapper.xml文件

自动生成的代码,放进去。

然后把mapper文件清空,

把xml文件不需要的方法也可以删掉

 本xml文件只保留这俩方法,一个是添加,一个查询。

xml爆红的这些都可以删掉
parameterType="TTablename" resultMap="TTablenameResult"
parameterType="TTablename"

package位置 

 

 对应xml位置:

 

 对应xml文件写mapper

 2.改数据库xml查询语句

 

 

 

 

 

 

 工具类中获取文件名全称,

接着往下看方法:

 

 

 

 

 接着去实现层,也就是impl

@Autowired
private TTablenameMapper tTablenameMapper;

 

String filename ="";

 

filename = String.valueOf(map.get("filename"));
int num=tTablenameMapper.selectTTablenameList(filename);
if(num>0){return "此文件名已被导入,请更换文件名";
}

 然后在循环外,加入一条往数据库添加的语句。

tTablenameMapper.insertTTablename(filename);

 

 

 

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...