1、创立我的项目
代码构造
2、增加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.1</version> </dependency>
3、application.properties配置
# 端口号server.port=1313# 数据库配置spring.datasource.url=jdbc:mysql:///数据库名?serverTimezone=GMT%2B8&characterEncoding=utf8# 数据库账号密码spring.datasource.username=账号spring.datasource.password=明码# mybatis配置mybatis.mapper-locations=classpath:/mapper/*.xmllogging.level.com.zj=debug
4、编写pojo层
@Datapublic class User implements Serializable { private static final long serialVersionUID = 619270056917451517L;// @DateTimeFormat("yyyy年MM月dd日HH时mm分ss秒")这里用string 去接日期能力格式化。我想接管年月日格局// @ColumnWidth(20)设置宽度 @ExcelProperty(value = "学号",index = 0) private Integer id; @ExcelProperty(value = "姓名",index = 1) private String name;}
5、编写mapper层
@Mapperpublic interface UserMapper { int insert(User user);}
6、编写UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.zj.mapper.UserMapper"> <insert id="insert"> insert into user01(id,name)values (#{id},#{name}); </insert></mapper>
7、编写UserService
public interface UserService { int insert(User user);}
8、编写实现类
@Servicepublic class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public int insert(User user) { return userMapper.insert(user); }}
9、重写监听器(不能被spring治理)
public class UserListener extends AnalysisEventListener<User> { private UserService userService; public UserListener(UserService userService){ this.userService=userService; }// 一行行读取excel内容 @Override public void invoke(User user, AnalysisContext analysisContext) { System.out.println("开始执行"); saveData(user); } private void saveData(User user) { userService.insert(user); System.out.println("存储胜利"); }// 读取表头内容 @Override public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) { System.out.println("表头:"+headMap); }// 读取实现之后 @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { System.out.println("存储结束"); }}
10、controller层编写
@RestControllerpublic class UserController { @Autowired private UserService userService; @PostMapping("upload") public String upload(MultipartFile file) throws IOException { EasyExcel.read(file.getInputStream(), User.class,new UserListener(userService)).sheet().doRead();// sheet()默认是0 return "success"; }}
postman测试
IDEA后盾
数据库
胜利上传数据