若依框架的导入详解

该篇博客主要介绍了Controller层的数据导入功能,包括导入数据列表和导入数据模板的方法。在Service层,实现了数据的验证、插入和更新操作,确保数据的唯一性和更新支持。在导入过程中,对数据进行了详细的处理,对于存在的数据可以选择更新,对于格式不正确的数据会抛出异常并给出错误信息。整个流程确保了数据导入的成功与准确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Controller层

/**
     * 导入数据列表
     */
    @Log(title = "数据管理", businessType = BusinessType.IMPORT)
    @PostMapping("/importData")
    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
    {
        ExcelUtil<MisData> util = new ExcelUtil<MisData>(MisData.class);
        List<MisData> dataList = util.importExcel(file.getInputStream());
        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
        String operName = loginUser.getUsername();
        String message = misDataService.importData(dataList, updateSupport, operName);
        return AjaxResult.success(message);
    }

    /**
     * 导入数据模板
     */
    @GetMapping("/importTemplate")
    public AjaxResult importTemplate()
    {
        ExcelUtil<MisData> util = new ExcelUtil<MisData>(MisData.class);
        return util.importTemplateExcel("导入数据模板");
    }

Service层

/**
     * 导入数据
     *
     * @param dataList 数据列表
     * @param updateSupport 是否更新支持,如果已存在,则进行更新数据
     * @param operName 操作用户
     * @return 结果
     */
    @Override
    public String importData(List<MisData> dataList, boolean updateSupport, String operName) {
        if(dataList==null||dataList.size()==0){
            throw new CustomException("导入数据不能为空!");
        }


        int successNum = 0;
        int failureNum = 0;
        StringBuilder successMsg = new StringBuilder();
        StringBuilder failureMsg = new StringBuilder();
        for (MisData data : dataList)
        {
            try
            {
                // 验证是否存在这个数据编号
                MisData m = misDataMapper.selectNoByNo(data.getNo());
                if (StringUtils.isNull(m))
                {
                    data.setCreateBy(operName);
                    this.insertMisData(data);
                    successNum++;
                    successMsg.append( successNum + "、数据编号 " + data.getNo() + " 导入成功");
                }
                else if (updateSupport)
                {
                    data.setUpdateBy(operName);
                    this.updateMisData(data);
                    successNum++;
                    successMsg.append( successNum + "、数据编号 " + data.getNo() + " 更新成功");
                }
                else
                {
                    failureNum++;
                    failureMsg.append( failureNum + "、数据编号 " + data.getNo() + " 已存在");
                }
            }
            catch (Exception e)
            {
                if(data==null){ throw new CustomException("数据编号为空!"); }
                failureNum++;
                String msg =  failureNum + "、数据编号 " + data.getNo() + " 导入失败:";
                failureMsg.append(msg + e.getMessage());
                log.error(msg, e);
            }
        }
        if (failureNum > 0)
        {
            failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
            throw new CustomException(failureMsg.toString());
        }
        else
        {
            successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
        }
        return successMsg.toString();
    }

剩下的Mapper层加上方法就行
最后导入成功!!!!!

### 若依框架简介 若依框架是一款基于Spring Boot和Vue.js技术栈的快速开发平台,旨在帮助开发者高效构建企业级应用系统。它提供了完整的前后端分离解决方案,支持模块化开发、权限管理等功能[^1]。 #### 特点 若依框架具有以下显著特点: - **开箱即用**:内置丰富的功能组件,如登录认证、权限控制、日志记录等,减少重复劳动。 - **高性能架构**:采用主流的技术栈(Spring Boot + Vue),具备良好的扩展性和性能表现。 - **代码生成器**:提供强大的代码生成功能,可以根据数据库表结构自动生成对应的前端页面和后端接口代码[^2]。 ```java // 示例:通过代码生成器创建的服务类方法 @Service public class SysUserService { @Autowired private SysUserMapper sysUserMapper; public List<SysUser> selectSysUserList(SysUser user) { return sysUserMapper.selectSysUserList(user); } } ``` - **灵活定制**:允许开发者根据实际需求调整模板样式或业务逻辑,满足个性化场景的需求。 - **社区活跃**:拥有庞大的用户群体和技术支持团队,便于解决各类问题并获取最新更新动态。 --- ### 安装与部署流程 以下是关于如何搭建运行环境的具体指导: 1. 下载源码包并完成解压缩操作; 2. 配置好所需的依赖工具链(Java JDK、Maven编译器以及关系型数据库服务MySQL);注意这部分内容未详尽描述于参考资料中,请参照官方文档补充学习; 3. 导入项目至集成开发环境中(推荐IntelliJ IDEA Ultimate Edition版本),同步pom.xml文件中的插件定义项以确保所有必需库均已加载完毕; 4. 修改application.yml配置文件里的数据连接参数匹配本地实例设置情况; 5. 启动入口Application.java程序验证整个系统的正常运转状态。 --- ### 应用场景分析 利用该框架可以迅速搭建多种类型的信息化管理系统,尤其适合那些侧重基础增删改查(CRUD)操作而较少关注复杂算法处理的应用领域: - 学校内部的学生档案维护门户; - 办公室日常事务安排调度看板; - 小型企业资源规划ERP雏形原型设计等等... 这些例子都体现了其广泛适用性的价值所在——只需稍作修改即可成为一套专业水准较高的成品软件交付给客户使用。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值