基于制造技术

技术编号:39714542 阅读:8 留言:0更新日期:2023-12-17 23:22
本发明专利技术公开了基于

【技术实现步骤摘要】
基于SQL的通用大数据导出方法及系统


[0001]本专利技术涉及移动通信
,具体地说是一种基于
SQL
的通用大数据导出方法及系统


技术介绍

[0002]随着移动通信的应用越来越广泛,在移动资源领域,大数据导出存在线程占用大

内存消耗高

效率处理慢

文件存储不安全以及无通用支撑能力的缺点,不能满足用户大数据导出的应用需求

[0003]SQL
语言,是结构化查询语言
(Structured Query Language)
的简称
。SQL
语言是一种数据库查询和程序设计语言,用于存取数据以及查询

更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名
。SQL
语言是高级的非过程化编程语言,允许用户在高层数据结构上工作

它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口
。SQL
语言语句可以嵌套,这使他具有极大的灵活性和强大的功能

[0004]故如何利用
SQL
语句进行大数据导出,保证导出服务的一致性,提高开发效率,同时保证内存占用

处理效率及文件存储是目前亟待解决的技术问题


技术实现思路

[0005]本专利技术的技术任务是提供一种基于
SQL
的通用大数据导出方法及系统,来解决如何利用
SQL
语句进行大数据导出,保证导出服务的一致性,提高开发效率,同时保证内存占用

处理效率及文件存储的问题

[0006]本专利技术的技术任务是按以下方式实现的,一种基于
SQL
的通用大数据导出方法,该方法是基于游标方式查询数据,逐行读取数据库查询结果,并逐行写入到
Excel
文件中,当达到设定数量是,将当前结果写入到一个
Excel
文件中,再继续读取下一批数据,重复读取及写入数据的过程直到查询结果全部处理完成;同时,根据指定的文件大小,自动分割成多个
Excel
文件,并将所有文件打包成
ZIP
文件,再通过
Feign
的方式对完共享

[0007]作为优选,该方法具体如下:
[0008]S1、
通过调用
getExcelWriter

getExcelWriteSheet
方法获取
ExcelWri ter

WriteSheet
对象,用于写入数据到
Excel
文件;
[0009]S2、
使用
jdbcTemplate.query
方法执行
SQL
查询,并通过
RowCallbackHa ndler
处理每一行的结果集;
[0010]S3、

processRow
方法中,将结果集转换为
Map
数据,并添加到
resultList
中;
[0011]S4、
每当
resultList
的大小达到
fetchSize
时,表示达到了需要分割的大小阈值,将文件分割成多个
Excel
文件;
[0012]S5、
判断
resultList
中是否还有剩余的数据:
[0013]若有,则执行步骤
S6

[0014]S6、
检查并开启新的写入文件;
[0015]S7、
将剩余的数据写入新的
Excel
文件中;
[0016]S8、
关闭最后一个
ExcelWriter
对象;
[0017]S9、
调用
zipExcelFiles
方法将所有
Excel
文件打包成
ZIP
文件

[0018]更优地,步骤
S5
中的将文件分割成多个
Excel
文件具体如下:
[0019]S501、
更新当前文件大小
curFileSize
,若超过预定的文件大小
fileSize
,则需要开启新的写入文件;
[0020]S502、
关闭当前的
ExcelWriter
对象,并通过
getExcelWriter
方法获取新的
ExcelWriter
对象;
[0021]S503、
获取新的
WriteSheet
对象;
[0022]S504、

resultList
中的数据写入
Excel
文件中;
[0023]S505、
清空
resultList
,准备接收下一批数据

[0024]一种基于
SQL
的通用大数据导出系统,该系统包括:
[0025]对象获取模块,用于通过调用
getExcelWriter

getExcelWriteSheet
方法获取
ExcelWriter

WriteSheet
对象,用于写入数据到
Excel
文件;
[0026]查询及处理模块,用于使用
jdbcTemplate.query
方法执行
SQL
查询,并通过
RowCallbackHandler
处理每一行的结果集;
[0027]转换及添加模块,用于在
processRow
方法中,将结果集转换为
Map
数据,并添加到
resultList
中;
[0028]分割模块,用于当
resultList
的大小达到
fetchSize
时,表示达到了需要分割的大小阈值,将文件分割成多个
Excel
文件;
[0029]判断模块,用于判断
resultList
中是否还有剩余的数据:
[0030]检查及开启模块,用于检查并开启新的写入文件;
[0031]写入模块,用于将剩余的数据写入新的
Excel
文件中;
[0032]关闭模块,用于关闭最后一个
ExcelWriter
...

【技术保护点】

【技术特征摘要】
1.
一种基于
SQL
的通用大数据导出方法,其特征在于,该方法是基于游标方式查询数据,逐行读取数据库查询结果,并逐行写入到
Excel
文件中,当达到设定数量是,将当前结果写入到一个
Excel
文件中,再继续读取下一批数据,重复读取及写入数据的过程直到查询结果全部处理完成;同时,根据指定的文件大小,自动分割成多个
Excel
文件,并将所有文件打包成
ZIP
文件,再通过
Feign
的方式对完共享
。2.
根据权利要求1所述的基于
SQL
的通用大数据导出方法,其特征在于,该方法具体如下:
S1、
通过调用
getExcelWriter

getExcelWriteSheet
方法获取
ExcelWri ter

WriteSheet
对象,用于写入数据到
Excel
文件;
S2、
使用
jdbcTemplate.query
方法执行
SQL
查询,并通过
RowCallbackHa ndler
处理每一行的结果集;
S3、

processRow
方法中,将结果集转换为
Map
数据,并添加到
resultL ist
中;
S4、
每当
resultList
的大小达到
fetchSize
时,表示达到了需要分割的大小阈值,将文件分割成多个
Excel
文件;
S5、
判断
resultList
中是否还有剩余的数据:若有,则执行步骤
S6

S6、
检查并开启新的写入文件;
S7、
将剩余的数据写入新的
Excel
文件中;
S8、
关闭最后一个
ExcelWriter
对象;
S9、
调用
zipExcelFiles
方法将所有
Excel
文件打包成
ZIP
文件
。3.
根据权利要求2所述的基于
SQL
的通用大数据导出方法,其特征在于,步骤
S5
中的将文件分割成多个
Excel
文件具体如下:
S501、
更新当前文件大小
curFileSize
,若超过预定的文件大小
fileSize
,则需要开启新的写入文件;
S502、
关闭当前的
ExcelWriter
对象,并通过
getExcelWriter
方法获取新的
ExcelWriter
对象;
S503、
获取新的
WriteSheet
对象;
S504、

resultList
中的数据写入
Excel
文件中;
S505、
清空
resultList
,准备接收下一批数据
。4.
一种基于
SQL
的通用大数据导出系统,其特征在于,该系统包括:对象获取模块,用于通过调用
getExcelWriter

ge...

【专利技术属性】
技术研发人员:韩明涛史英端柴宗弘
申请(专利权)人:浪潮通信信息系统天津有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1