本文共 1195 字,大约阅读时间需要 3 分钟。
课程分类(我们要操作subject表),对应这个模块我们要写controller,service,mapper,entity(实体类),这些我们不需要写
表改一下,其他配置不需要改 生成之后的效果 我们对controller路径做了微调整加上跨域注解@CrossOrigin
controller注入service 我们现在要做到根据上传的excel文件读取里面的内容(因为我们文件路径有时候会改变,读不到数据)service层创建方法
实现类中写具体方法创建和excel内容相对应的一级二级分类
完善实现类的具体方法: 我们创建了一个包专门写监听器service部分完事(测试的时候我们写的是路径,现在我们写个流,其他部分没啥区别)
解释一下@Service注解:
把EduSubjectServiceImpl对象创建交给spring进行管理 问题是SubjectExcelListener对象不能交给spring进行管理,这里是我们自己创建的一个对象,我们需要自己管理,spring不管理会有一个问题,SubjectExcelListener对象不能调用service的里面的方法调用不到,因为它没有交给spring进行管理,包括我们在SubjectExcelListener方法里面做注入,没办法注入,因为它spring里面没有管理这个SubjectExcelListener //因为SubjectExcelListener不能交给spring进行管理,需要自己new,不能注入其他对象 //不能实现数据库操作我们这里怎么解决呢?
手动注入,设置有参构造controller里面修改
service里面修改 EduSubjectServiceImpl里面修改 new SubjectExcelListener() 传进来 这样做完之后我们后边SubjectExcelListener里可以直接用subjectService1.读取Excel内容,一行一行进行读取
(1)如果excel中没有数据,不需要读取,做个if判断,扔到异常中。(2)Excel添加时候的问题:不能重复添加一级分类
表格中一级分类名称一个就够了,不用重复,我们同样做个判断(不相同添加,相同不再添加)我们写语句这样写,根据名称判断一级分类的值
判断一级分类添加时是否重复代码: 判断最终实现:一级分类:
加上一个时间填充注解 二级分类: service层代码完善一下:先用命令行删除edu_subject表中的内容
打开swagger页面进行测试 我们去数据库中看一下,已经添加成功转载地址:http://hpxzi.baihongyu.com/