项目需要,写了一个,批量导入的接口。因为需要使用excel去批量导入数据,所以写了一个例子,经过测试已经可以用于实际开发,这里记录一下
正文
java进阶解析Springboot上传excel存入数据库步骤
一、导入依赖
这里还是用了Apache的POI插件,现在一般的springboot解析excel基本都用它 。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<!-- 文件上传,解析文件需要的依赖--> <!--poi对excel2007以上版本的支持--> < dependency > < groupId >org.apache.poi</ groupId > < artifactId >poi-ooxml</ artifactId > < version >5.0.0</ version > </ dependency > <!-- poi对excel2003以下版本的支持 --> < dependency > < groupId >org.apache.poi</ groupId > < artifactId >poi</ artifactId > < version >5.0.0</ version > </ dependency > |
二、前端实现
1
2
3
|
< button type = "button" class = "layui-btn layui-btn-normal layui-btn-radius" id = "bookFileUpload" > < i class = "layui-icon" ></ i >文件导入 </ button > |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
/** * 文件上传--批量导入 */ layui.use( 'upload' , function () { var upload = layui.upload; var layer = layui.layer; // layer.msg('上传中', {icon: 16, time: 0,shade: 0.3}); //执行实例 var uploadInst = upload.render({ elem: '#bookFileUpload' , //绑定元素 url: '/library/book/batchAddBooks/' , //上传接口 exts: 'xlsx|xls' , //限制文件类型 done: function (res) { //上传完毕回调 if (res.code == '1' ) { successMsg( "导入成功" ); } else { errorMsg( "导入失败" + res); } }, error: function (res) { //请求异常回调 errorMsg( "系统异常" + res); } }); }); |
说明一下,这里还是用了layui的框架去实现的,layui是我用过的前端框架里边坑相对较少的一个不错的简单并且很容易入门的框架。
三、后台逻辑
1.首先写一个用于导入数据的model实体类,对应数据库的一张表。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
/** * 书籍实体 */ @Data public class Book { //主键id private int bid; //书名 private String bookname; //作者 private String author; //书的类型 武侠、言情等 private String booktype; //出版社 private String publisher; //出版时间 private String publicationdate; //发行价格 private int price; //发行状态 private String bookstate; //备注 private String comment; } |
这里使用了lombok的插件工具,所以可以省去写setget方法,只需要@Data即可。
lombok的依赖,可用可不用,看你自己:
1
2
3
4
5
|
< dependency > < groupId >org.projectlombok</ groupId > < artifactId >lombok</ artifactId > < optional >true</ optional > </ dependency > |
2.接着写一下前端上传过来excel,后台的解析处理逻辑。
下面是重点:
发表评论