现今互联网什么最宝贵?数据!
关于数据库数据的批量导入和导出功能,是每个网站必备的功能。今天我们用最新的技术把这一功能实现一下。
使用技术:
前端Angularjs
后端SSM(SpringMVC、Mybatis、Spring)
关于excel解析规范,使用现成的jar包:Apache POI
数据库可是使用传统的关系型数据库,也可以是现在流行的nosql数据库。
我主要讲逻辑和逻辑的封装,底层的jdbc和一些很基础的就不讲了。本文分两讲,这是上篇,说的是导入功能。
导入Excel:
导入Excel到数据库就是把excel的数据逐条读取到内存(比如存在HashMap中或者ArrayList中),然后通过jdbc插入到数据库,无非以下几个步骤:
编写前端页面,提供excel模板下载链接也页面。
后台是使用POI解析excel,(poi是一个现成的jar包,你可以理解成里边是按照excel的规范编写的解析器就行了),拿到所有数据。
通过jdbc写入数据库,我们这里采用mybatis动态sql,实际开发是很少使用原声jdbc的。
就这3步就够了,最麻烦的就是解析excel,其他的都是基本的编程思路,我着重写解析excel吧,然后把解析过程封装成一个工具类,放到github,文末有共享连接。
编写前台页面:使用Angularjs和bootstrap,前台用什么技术无关导入功能,你开心就好,我们这里使用最新的富客户端技术,你稍微体验一下就好。
前端调用方式:(mvc)html——》cotroller——》service——》api,内置ajax异步请求:
html层(视图层)
controller(控制层)
service
api(所有的异步请求链接单独存放,方便管理)
后台 使用Spring mvc + Spring + Mybatis:这里着重写excel的解析,好好看。
使用最新的国际提倡的RESTful风格,请求顺序:controller——》Service——》dao,mvc架构。
下载excel模板的controller
处理导入数据的excel的controller
service,主要是检验excle的数据是否符合规范,这里简单写,你改成你的校验要求就行
这里是excel的解析,封装poi的整个类,在文末有git共享链接,主要功能如下:
导入excel文件,返回List<Map<String, Object>>
根据excel模版创建文件(map<String, Object>或者javaBean或者ResultSet数据源)
根据excel模版创建文件(model)
根据excel模版创建文件(ResultSet rs)
excel文件转换成List<Map<String,Object>>
如上对excel的操作,封装成了一个工具类,包含导入和导出,你可以拿去直接在你的项目中使用,github如下:
数据库操作就不截图了。我这里使用的是mybatis的动态sql语句,你可以根据你的数据库,编写相对应的sql语句。
我是90后程序员,如果你热爱编程,喜欢互联网,可以关注一下我@两毛五哥哥,每天分享不一样的互联网知识,带小白飞,跟大神侃,我的格言是:做人不必优秀,要无可替代!