我们先看看需要导入的数据和数据库
接下来直接上代码环节…
第一步 引入hutool依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.0.5</version>
</dependency>
我这里引用的是hutool 5.0.5版本,详细链接: hutool官网
第二步 Controller
@RequestMapping("import")
@Controller
public class PoiController {
@Autowired
private ImportTemplateService importTemplateService;
@ResponseBody
@RequestMapping("/importTemplate.do")
public void importTemplate(MultipartFile file) {
importTemplateService.importTemplate(file);
}
}
第三步 Service
public interface ImportTemplateService {
public void importTemplate(MultipartFile file);
}
第四步 ServiceImpl
@Service
public class ImportTemplateServiceImpl implements ImportTemplateService {
@Autowired
private TTestUserMapper tTestUserMapper;
@Override
public void importTemplate(MultipartFile file) {
InputStream inputStream = null;
try {
inputStream = file.getInputStream();
}catch (Exception e){
e.printStackTrace();
}
ExcelReader reader = ExcelUtil.getReader(inputStream, 0); //指定输入流和sheet
// 读取第二行到最后一行数据
List<List<Object>> read = reader.read(1, reader.getRowCount());
List<TTestUser> samples = new ArrayList<>();
for (List<Object> objects : read) {
TTestUser user = new TTestUser();
Object userNo = objects.get(0);//读取某行第一列数据
Object userName = objects.get(1); //读取某行第二列数据
Object sex = objects.get(2); //读取某行第三列数据
Object age = objects.get(3); //读取某行第四列数据
user.setUserno(userNo.toString());
user.setUsername(userName.toString());
user.setSex(sex.toString());
user.setAge(Long.parseLong(age.toString()));
samples.add(user);
}
tTestUserMapper.batchInsert(samples);
}
}
第五步 Mapper
int batchInsert(@Param(value = "list") List<TTestUser> user);
第六步 Mapper.xml
<insert id="batchInsert" parameterType="java.util.List">
insert into T_Test_User (UserNo, UserName, Sex, Age)
values
<foreach collection="list" index="index" item="item" separator=",">
(#{item.userno,jdbcType=NVARCHAR},
#{item.username,jdbcType=NVARCHAR},
#{item.sex,jdbcType=NVARCHAR},
#{item.age,jdbcType=BIGINT})
</foreach>
</insert>
第七步 利用postman 发送请求
最后一步 去数据库中查导入的结果![在这里插入图片描述](https://img-blog.csdnimg.cn/da6575d5dbbc487bb4a2dec35267ff83.png)
End 接口的返回值我这里没有做处理,大家根据自己需求封装返回数据,觉得文章对你有帮助,点个赞,互粉哦~