SpringBoot+Jpa实现Excel的导入导出(动态Sql、分页查询、联表join)

Excel (SpringBoot + JPA)

SpringBoot+Jpa实现Excel的导入导出(动态Sql、分页查询、联表join)

  最近做了一个项目甲方需求中要求数据的导入导出到Excel文件,Excel的复杂表头和数据格式一直是个头疼的问题,使用poi或者jexcelapi的话就需要花费大量时间处理表头以及数据格式问题,但是整个项目的开发时间只有一周,对接和联调一周,那就只能去找快速的“黑科技”了–EasyExcel,虽然EasyExcel只是对poi的再封装,但是EasyExcel中有一个模板写入的功能,是可以很好的解决复杂表头和一些基本的数据格式问题的。抽了点时间整理了一个demo,也包含一些对Jpa的进阶用法(动态Sql分页查询、联表join等)。

开发环境

    环境: windows 10
    编译器: IDEA 2018
    数据库: MySQL 5.6
    JDK: jdk1.8.0_92
    Maven: 3.6

项目结构树

│  .gitignore
│  LICENSE
│  pom.xml                                                          --项目pom文件
│  README.md                                                        --readme.md文件						
├─github
│  └─image                                                          --用于存放readme.md中链接的图片
├─other
│      Excel.sql                                                    --数据库建表Sql语句
│      Excel数据导入测试[PostMan].postman_collection.json            --信息导入接口PostMan导出的json文件
│      个人信息导入.xlsx                                             --个人信息导入测试数据
│      毕业信息导入.xlsx                                             --毕业信息导入测试数据
│      目录结构树.txt
├─src
│  ├─main
│  │  ├─java
│  │  │  └─com
│  │  │      └─cyan
│  │  │          └─excel
│  │  │              │  ExcelApplication.java                       --SpringBoot启动类
│  │  │              │  
│  │  │              ├─controller
│  │  │              │      ExcelController.java                    --Controller层
│  │  │              │     
│  │  │              ├─entity				
│  │  │              │  │  GraduateInfo.java                        --毕业信息实体
│  │  │              │  │  UserInfo.java                            --用户信息实体
│  │  │              │  │   
│  │  │              │  ├─joint				
│  │  │              │  │      GraduateUserJoint.java               --毕业和用户联表Join实体
│  │  │              │  │      
│  │  │              │  └─model				
│  │  │              │          DetailModel.java                    --详细信息Excel文件对应模型
│  │  │              │          GraduateModel.java                  --毕业信息Excel文件对应模型
│  │  │              │          UserModel.java                      --用户信息Excel文件对应模型
│  │  │              │          
│  │  │              ├─enums				
│  │  │              │      ExcelFileEnum.java                      --Excel文件类型枚举
│  │  │              │      SexTypeEnum.java                        --性别类型枚举
│  │  │              │      
│  │  │              ├─exception				
│  │  │              │  │  ExcelException.java                      --全局异常
│  │  │              │  │  
│  │  │              │  └─handler					
│  │  │              │          ExcelExceptionHandler.java          --全局异常捕获处理
│  │  │              │          
│  │  │              ├─listener					
│  │  │              │      ExcelListener.java                      --excel数据处理
│  │  │              │      
│  │  │              ├─repository
│  │  │              │  │  GraduateInfoRepository.java              --毕业信息DAO层(jpa)
│  │  │              │  │  GraduateUserJointRepository.java	        --用户和毕业联表joinDAO层(jpa)
│  │  │              │  │  UserInfoRepository.java                  --用户信息DAO层(jpa)
│  │  │              │  │  
│  │  │              │  └─Impl
│  │  │              │          GraduateUserJointRepositoryImpl.java--用户和毕业联表joinDAO层(代码实现分页/动态Sql)
│  │  │              │          
│  │  │              ├─result
│  │  │              │      ResponseResult.java                     --返回结果体
│  │  │              │      ResponseResultEnum.java                 --返回结果异常枚举
│  │  │              │      ResponseResultUtils.java                --返回结果工具类
│  │  │   
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值