博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
课程分类添加功能
阅读量:3956 次
发布时间:2019-05-24

本文共 1195 字,大约阅读时间需要 3 分钟。

第一步 引入EasyExcel依赖

在这里插入图片描述

第二步 使用代码生成器把课程分类代码生成出来

课程分类(我们要操作subject表),对应这个模块我们要写controller,service,mapper,entity(实体类),这些我们不需要写

表改一下,其他配置不需要改
在这里插入图片描述
生成之后的效果
在这里插入图片描述
我们对controller路径做了微调整
在这里插入图片描述

加上跨域注解@CrossOrigin

controller注入service
我们现在要做到根据上传的excel文件读取里面的内容(因为我们文件路径有时候会改变,读不到数据)
在这里插入图片描述

service层创建方法

在这里插入图片描述
实现类中写具体方法
在这里插入图片描述

第三步 创建实体类和excel对应关系

创建和excel内容相对应的一级二级分类

在这里插入图片描述
完善实现类的具体方法:
在这里插入图片描述
我们创建了一个包专门写监听器
在这里插入图片描述

service部分完事(测试的时候我们写的是路径,现在我们写个流,其他部分没啥区别)

解释一下@Service注解:

把EduSubjectServiceImpl对象创建交给spring进行管理
在这里插入图片描述
问题是SubjectExcelListener对象不能交给spring进行管理,这里是我们自己创建的一个对象,我们需要自己管理,spring不管理会有一个问题,SubjectExcelListener对象不能调用service的里面的方法调用不到,因为它没有交给spring进行管理,包括我们在SubjectExcelListener方法里面做注入,没办法注入,因为它spring里面没有管理这个SubjectExcelListener
这个没法实现
//因为SubjectExcelListener不能交给spring进行管理,需要自己new,不能注入其他对象
//不能实现数据库操作

我们这里怎么解决呢?

手动注入,设置有参构造
在这里插入图片描述

controller里面修改

在这里插入图片描述
service里面修改
在这里插入图片描述
EduSubjectServiceImpl里面修改
在这里插入图片描述
new SubjectExcelListener() 传进来
在这里插入图片描述
这样做完之后我们后边SubjectExcelListener里可以直接用subjectService

我们要把excel中的数据读取出来,添加到数据库中

1.读取Excel内容,一行一行进行读取

(1)如果excel中没有数据,不需要读取,做个if判断,扔到异常中。
在这里插入图片描述

(2)Excel添加时候的问题:不能重复添加一级分类

表格中一级分类名称一个就够了,不用重复,我们同样做个判断(不相同添加,相同不再添加)
在这里插入图片描述

我们写语句这样写,根据名称判断一级分类的值

在这里插入图片描述
判断一级分类添加时是否重复代码:
在这里插入图片描述
在这里插入图片描述
判断最终实现:

一级分类:

在这里插入图片描述
加上一个时间填充注解
在这里插入图片描述
二级分类:
在这里插入图片描述
在这里插入图片描述
service层代码完善一下:
在这里插入图片描述

我们用swagger测试一下:

先用命令行删除edu_subject表中的内容

在这里插入图片描述
打开swagger页面进行测试
在这里插入图片描述
我们去数据库中看一下,已经添加成功
在这里插入图片描述

转载地址:http://hpxzi.baihongyu.com/

你可能感兴趣的文章
HTML DOM
查看>>
AJAX 基础
查看>>
JSON 基础
查看>>
J2EE监听器Listener接口大全[转]
查看>>
cookie、session、sessionid 与jsessionid[转]
查看>>
常见Oracle HINT的用法
查看>>
JAVA中各类CACHE机制实现的比较 [转]
查看>>
PL/SQL Developer技巧
查看>>
3-python之PyCharm如何新建项目
查看>>
15-python之while循环嵌套应用场景
查看>>
17-python之for循环
查看>>
18-python之while循环,for循环与else的配合
查看>>
19-python之字符串简单介绍
查看>>
20-python之切片详细介绍
查看>>
P24-c++类继承-01详细的例子演示继承的好处
查看>>
P8-c++对象和类-01默认构造函数详解
查看>>
P1-c++函数详解-01函数的默认参数
查看>>
P3-c++函数详解-03函数模板详细介绍
查看>>
P4-c++函数详解-04函数重载,函数模板和函数模板重载,编译器选择使用哪个函数版本?
查看>>
P5-c++内存模型和名称空间-01头文件相关
查看>>