首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

springboot+mybatis实现excel文件上传

优质文章,第一时间送达

简介:

项目要求有excel文件上传这个功能,由于这个功能十分常见所以公司也有这个功能的相关模块来处理,只是接触了springboot有一段时间了,所以想着自己利用springboot和mybatis来实现一下这个功能,算是对基础知识的巩固吧。

项目配置:Springboot,mybatis,POI,mysql,thymeleaf

项目目录结构:

一、导入相关包——POM配置

二、配置文件——数据库相关配置

1、application.yml文件

2.创建数据表语句:

三、前端页面(templates下的index.html页面)

四、Controller层

Controller层需要一个配置一个loadPage转到上传文件的界面

五、service层

service层是文件上传的核心部分,需要对excel文件进行解析并提取需要上传至数据库的部分,有的项目对上传文件需要的是全部列都上传,有的需求则是只需要将表中的某几列导入数据库,因此sevice层还需要对此做相关配置。在本demo中本人采取的是比较笨的方法来处理全部上传和部分上传,利用一个int数组(resultCell)来保存需要上传列的序号,从0开始计数,将excel表中的所有列来与之匹配得到最后结果集,这样做的好处是之后要修改上传的列时只需要修改int数组的值即可。

六、mybatis  Mapper映射文件

本demo中测试的是部分上传(int[] resultCell = new int[];),因此数据库语句只插入部分列,如果您有其他的需求,可以先修改数组resultCell的值,但请注意数组resultCell的长度不应该超过上传文件的总列数,可以对resultCell数组进行一次判断再做处理,最后修改sql语句即可,其他部分不用做修改。

七、其他帮助类

1.excel文件映射类,即您要上传的文件的列,本demo中的文件类:

2. 统一返回结果类,定义返回给前端的统一的结果类,导入成功或失败,返回内容和返回数据

八、springboot启动类:

@MapperScan注解可以指定要扫描的Mapper类的包的路径

九、点击上传后返回的结果页面(thymeleaf)

返回结果由controller层定义

代码示例中没有贴入Service层和Dao层的接口,上传的测试文件也没有贴出,完整的demo可以通过这个路径来进行下载:https://github.com/xiBei-luo/JAVA/tree/master/fileimport

本demo是一个很简单的小例子,但是兼顾了前端、服务层、数据库持久层,服务层在解析excel时借助了POI框架,由于本人能力有限,其中使用了很多的for循环和判断,性能上可能达不到有些项目的需求,比较适合新手学习和巩固,如果您有更好的想法和思路欢迎私信或者留言区多多指教,如果您对此例子有任何问题也欢迎评论和私信,我会尽我所能为您解惑。

温暖提示

推荐案例

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201104A07KN500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券