Excel通过POI大数据导入数据库通用方案.docx

上传人:b****6 文档编号:6628579 上传时间:2023-01-08 格式:DOCX 页数:14 大小:152.68KB
下载 相关 举报
Excel通过POI大数据导入数据库通用方案.docx_第1页
第1页 / 共14页
Excel通过POI大数据导入数据库通用方案.docx_第2页
第2页 / 共14页
Excel通过POI大数据导入数据库通用方案.docx_第3页
第3页 / 共14页
Excel通过POI大数据导入数据库通用方案.docx_第4页
第4页 / 共14页
Excel通过POI大数据导入数据库通用方案.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Excel通过POI大数据导入数据库通用方案.docx

《Excel通过POI大数据导入数据库通用方案.docx》由会员分享,可在线阅读,更多相关《Excel通过POI大数据导入数据库通用方案.docx(14页珍藏版)》请在冰豆网上搜索。

Excel通过POI大数据导入数据库通用方案.docx

Excel通过POI大数据导入数据库通用方案

一、总体设计思路错误!

未指定书签。

二、导入规则表设计错误!

未指定书签。

1、数据导入表规则错误!

未指定书签。

2、数据导入列规则错误!

未指定书签。

三、导入规则类设计错误!

未指定书签。

四、界面设计错误!

未指定书签。

1、规则配置界面错误!

未指定书签。

2、导入数据界面错误!

未指定书签。

五、导入逻辑错误!

未指定书签。

六、内部评审补充错误!

未指定书签。

 

此文档仅为设计方案,如要查看具体实现,请联系我所要源码

 

通用导入设计方案

一、总体设计思路

考虑到导入在项目中应用较多,随后其他项目中都会用到,为了减少重复工作,不必因为的样式、数据等变化而重新编码,重复劳动,因此必须抽取通用的东西出来,封装共同点,暴露个性点,使用时只需要关注相关业务,而不必关注的读取和存储。

考虑到这个情况,可以使用规则配置来解决这个问题。

配置规则的时候,需要配置要导入的表,字段等信息,导入的时候依据这个规则将数据导入到数据库中。

这样一来,在进行导入时候只需要为某种数据配置一个规则,然后调用封装的导入类就可以完成整个导入的工作了。

实现源码参见

二、导入规则表设计

1、数据导入表规则

字段名

字段类型

允许值

默认值

备注

主键

2(32)

唯一标识,

创建时间

2(32)

规则名称

2(16)

结束行,空行或第N行

1

标题行索引

2

数据行索引

2(32)

表名称

0

是否删除重复行0不删除1删除

1

有效标识,删除标识

1

2(256)

扩展字段1

2

2(256)

扩展字段2

3

2(256)

扩展字段3

4

2(256)

扩展字段4

5

2(256)

扩展字段5

(1):

数据表唯一标识,没有业务含义;

(2):

创建时间;

(3):

规则名称;

(4):

数据读取结束标识,标识遇到空行结束,数字N表示读取到第N行结束;

(5):

标题行索引,默认值为1,表示第一行是标题行;

(6):

数据开始行索引,默认值为2,表示第2行开始是正式数据;

(7):

表名称,表示这个规则是针对这个表的数据导入定义的;

(8):

是否删除重复行,即是否导入重复数据,0则不删除,直接导入,1则先删除重复数据,然后再导入;是否重复根据规则表的字段来判定,重复行是指数据库中存在及中相同的数据;

(9):

有效标识;

2、数据导入列规则

字段名

字段类型

允许值

默认值

备注

主键

2(32)

唯一标识,

2(32)

表的主键

0

是否是主键

 

2(32)

生成方法,导入数据/自定义策略/默认值

0

是否唯一,用来判定重复数据

2(32)

列名称

2(32)

对应列头

1

是否必须填入0不必须1必须

2(16)

数据类型,

0

允许最大存储长度,字节

2(32)

生成方法值,策略方法名/默认值

2(128)

备注

0

是否属于字典0不属于1属于

2(32)

字典表名称

2(32)

字典类型字段名

2(32)

字典类型

2(32)

字典表最终获取值列的名称

2(32)

字典表参考列的名称

1

是否有效

1

2(256)

扩展字段1

2

2(256)

扩展字段2

3

2(256)

扩展字段3

4

2(256)

扩展字段4

5

2(256)

扩展字段5

(1):

数据表唯一标识,没有业务含义;

(2):

表的主键,表示这条列规则是属于哪个表的规则;

(3):

是否是主键;

(4):

数据生成策略,导入数据/自定义策略/默认值,三种策略供选择;

(5):

是否唯一,用来判定重复数据;

(6):

列名称,对应表中的列名;

(7):

列标题,及数据表列是对应的;

(8):

是否必须导入,0不必须1必须;

(9):

数据类型,数字还是字符,;

(10):

最大允许长度,不能大于,数据表中该列的长度;

(11):

数据生成策略值,导入数据是为空,自定义策略是为策略方法名,或者是默认值;

(12):

备注;

(13):

最终导入数据是否来源于字典,0不1是;

(14):

字典数据来源表的名称;

(15):

字典类型列的字段名;

(16):

该列所属的字典类型值;

(17):

字典表最终获取值列的名称,例如:

现在需要导入“编码器类型”,内容是“飞利浦”,“编码器类型”是一个字典,对应的字典表是“”,“飞利浦”是“”列的值,而数据表需要存入的是“”列的值,这时“”就是,而“”就是,“”是;

(18):

参见第17条说明。

(19):

该规则是否有效;

三、导入规则类设计

{

成功数目

失败数目

}

{

;

(){…}

(){…}

}

{

;

;

;

;

;

;

;

;

;

;

(){…}

(){…}

}

{

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

}

四、界面设计

1、规则配置界面

2、

3、导入数据界面

4、

5、

五、导入逻辑

关于操作,设计将采用的组件,版本采用项目中已经包含的版本2.5.1。

具体导入逻辑如下:

1、将文件上传到服务器,利用加载文件。

2、根据用户选择的导入规则,从数据库加载对应的对象;

3、根据标题行索引,数据开始行索引,结束行标识,判断该是否满足对应规则的导入条件,满足则继续,不满足则给出提示信息。

4、从数据开始行开始,逐行读取文件。

5、处理第一列,根据第一列的标题以及属性,匹配到对应的对象,如果没有匹配的对象,则抛出异常(未找到及之匹配的列规则),如果该列已经处理过,也抛出异常(标题存在重复列),否则继续;

6、读取当前列的内容,如果是空值,判断属性是否为,如果是,则将属性作为内容直接执行第11条,如果是则继续;

7、判断属性是否为,如果为,则跳过8、9逻辑,直接执行第10条,如果为,则继续;

8、判断属性、属性、属性以及属性,若其中有任意一个为或空值,则抛出异常(属于字典,却未指定字典表名称以及相关属性、、),否则继续;

9、查找字典表,查找语句为”[][][]=[][]=’[]’”,若语句不能查询到数据,则抛出异常(找不到对应的字典项),若查询到数据,则取第一条数据的[]值,继续;

10、判断属性是否为,若为,执行第11条,若为,则查找表[]中[]值为[]的数据是否存在,若不存在则执行第11条,否则继续判断属性是否为,若为则删除数据库中该条数据;

11、判断属性,并判断及该类型是否匹配,若不匹配,则抛出异常(数据类型不符合条件),如果匹配则继续;

12、判断长度是否超过属性值,若超过,则抛出异常(单元格内容长度太大),否则继续;

13、将作为列的值,加到准备好的语句对应参数位置,等待执行;

14、处理第二列,从第5条开始执行循环处理,直到列结束;

15、执行或批量执行准备好的语句,返回执行结果;

16、处理第二行,并判断是否符合的条件,如果是结束行,则整个导入结束,否则从第4条开始执行循环处理,直到结束。

六、内部评审补充

1、主键生成策略。

考虑到系统中大多设备的主键都及业务有关联,某个设备的主键可能是由网点、设备类别、设备型号等组合出来的,所以各种设备的主键生成规则可能不同,因此设备导入的时候可以根据设备种类,调用不同的主键生成策略。

因此制定导入规则的同时,还要关联相应的主键生成策略。

2、文件的空白行、空白列问题。

经过测试,组件不存在这个问题,例如30行数据,第15行是空白行,依然识别为30行,列同样如此。

3、标题行有名字重复的问题。

名字重复视为同一个属性,直接忽略同时给出警告信息。

4、中止,继续如何实现。

采用的线程实现,()实现暂停,()实现继续。

5、字段引发问题。

逻辑删除的数据字段是0,当中有主键及之重复的数据时,有2中方法:

(1)删除掉原来的数据,重新插入;

(2)直接在原来的数据上更新。

6、读写文件内存。

网上已经查找到行级操作的源码,封装一下,可以满足要求。

7、假删除数据的处理,同5;

8、及时删除垃圾文件,释放对象;

9、注意代码结构和实现;

10、重复逻辑的判断,出现重复数据的处理(根据不同数据,使用相应的判断逻辑,主键判断还是联合主键判断。

逻辑删除的重复数据:

删掉再导入;有效地重复数据:

忽略并给出信息);

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1