CN102486772A - 一种数据的导出方法及装置 - Google Patents
一种数据的导出方法及装置 Download PDFInfo
- Publication number
- CN102486772A CN102486772A CN2009102441027A CN200910244102A CN102486772A CN 102486772 A CN102486772 A CN 102486772A CN 2009102441027 A CN2009102441027 A CN 2009102441027A CN 200910244102 A CN200910244102 A CN 200910244102A CN 102486772 A CN102486772 A CN 102486772A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- file destination
- database
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据的导出方法及装置,涉及数据处理技术领域。为了解决现有技术中,采用第三方工具从数据库中导出大量数据的过程中,系统需要建立较多对象,占用较多的内存资源的问题而发明。本发明实施例提供的一种数据的导出方法,包括:获取目标文件存储数据的总数据量;根据所述目标文件存储数据的总数据量,通过输入输出流将数据库中相应数据量的数据导出到目标文件。采用本发明实施例可以节省内存资源,降低内存溢出概率,提高系统稳定性。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据的导出方法及装置。
背景技术
随着信息化和数字化时代的来临,大部分重要数据都是以数据库的方式进行存储。这样,当非IT专业人员对数据进行统计、整合、重组和存储等操作时,就需要借用第三方工具将数据库中的数据导出成EXCEL文件,从而方便用户对数据进行操作。例如:JAVA应用系统中,要实现将数据库数据导出成EXCEL文件必须使用第三方工具,如Jakarta POI、JExcelApi、FastExcel等。以下为使用Jakarta POI、JExcelApi、FastExcel第三方工具导出数据库中大量数据的测试结果如下:
设需要从数据库中导出的数据量为110011条,每条数据条数为19个字段;将所述数据一次性全部导出到一个Excel文件中。使用Jakarta POI、JExcelApi、FastExcel第三方工具导出所述数据库中大量数据的实际情况均报Out OfMemery(内存溢出)错误,如表所示为报Out OfMemery(内存溢出)错误时,导出数据对应数据库的记录行数:
FastExecl | Jakarta POI | JExcelApi | |
10000数据/sheet | 37465 | 28996 | 42270 |
5000数据/sheet | 39096 | 31487 | 46270 |
3000数据/sheet | 39000 | 32493 | 47860 |
在实现本发明的过程中,发明人发现现有技术中至少存在以下问题:现有技术中,由于采用所述第三方工具从数据库中导出大量数据的过程中,系统需要建立较多对象,占用较多的内存资源,所以使得内存溢出概率较高,系统稳定性较差。
发明内容
本发明实施例提供了一种数据的导出方法及装置,以实现节省内存资源,降低内存溢出概率,提高系统稳定性的目的。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,本发明实施例提供了一种数据的导出方法,包括:
获取目标文件存储数据的总数据量;
根据所述目标文件存储数据的总数据量,通过输入输出流将数据库中相应数据量的数据导出到目标文件。
另一方面,本发明实施例提供了一种数据的导出装置,包括:
信息获取单元,用于获取目标文件存储数据的总数据量;
数据导出单元,用于根据所述目标文件存储数据的总数据量,通过输入输出流将数据库中相应数据量的数据导出到目标文件。
本发明实施例提供的一种数据的导出方法及装置,通过获取目标文件存储数据的总数据量;根据所述目标文件存储数据的总数据量,通过输入输出流将数据库中相应数据量的数据导出到目标文件。与现有技术相比,本方法实施例通过数据库中相应数据量的数据导出到目标文件,而不是直接将数据库中的数据生成目标文件。这样,可以不用建立较多的辅助对象,从而大大降低内存资源的占用量;与此同时,本发明实施例是根据当前目标文件所能存储数据的总数据量,通过输入输出流将数据库中相应数据量的数据导出到目标文件,使得数据库文件在导出到目标文件的过程中不会产生溢出,从而大大降低了内存溢出的概率,提高了系统的稳定性。
附图说明
图1为本发明实施例提供的一种数据的导出方法流程图;
图2为本发明实施例提供的另一种数据的导出方法流程图;
图3为本发明实施例提供的一种数据的导出方法具体实现流程图;
图4为本发明实施例提供的一种数据的导出装置结构示意图;
图5为本发明实施例提供的另一种数据的导出装置结构示意图。
具体实施方式
下面结合附图对本发明实施例提供的一种数据的导出方法及装置进行详细的说明,以下通过将数据库中的数据导出到目标文件即“.cvs”格式文件和EXCEL文件为例。
如图1所示,为本发明实施例提供的一种数据的导出方法,该方法具体实现过程如下:
101:获取目标文件存储数据的总数据量;例如:设目标文件格式为“.cvs”格式文件;则所述目标文件存储数据的总数据量可以通过查询数据库中需要导出的数据的记录行数量并结合客户或项目对导出“.cvs”格式文件属性的要求进行设置。这样,在所述步骤101之前还可以包括:设置所述目标文件的配置,以便动态调整所述目标文件存储数据的总数据量。
102:根据所述目标文件存储数据的总数据量,通过输入输出流将数据库中相应数据量的数据导出到目标文件。
其中,所述步骤102,具体可以包括:
所述根据所述目标文件存储数据的总数据量,按照分页查询的方式获取数据库中数据;
将所述获取到的数据库中数据,通过输入输出流将数据库中相应数据量的数据导出到目标文件。
需要注意的是,该方法还可以包括:
关闭所述输入输出流,释放系统资源。
还需要注意的是,所述目标文件即“.cvs”格式文件可以被EXCEL文件识别且打开;“.cvs”格式文件与EXCEL文件的不同在于所述“.cvs”格式文件不需要写头代码和尾代码,数据部分也不需要按照固定格式书写,只需要按行导入即可。
如图2所示,为本发明实施例提供的一种数据的导出方法,该方法,具体实现过程如下:
201:通过输入输出流,将头代码文件和尾代码文件添加到目标文件;例如:基于JAVA技术的应用系统可以通过IO(Input Output,输入输出)流将预先配置的目标文件的头代码文件和尾代码文件添加到目标文件即EXCEL文件中。
需要注意的是,以上所述EXCEL文件的头代码与尾代码在每个EXCEL文件中都相同,所以在进行数据库数据导出时,可以预先设置EXCEL文件的头代码与尾代码,并将其存储到对应的头代码文件与尾代码文件中。当需要将数据库数据导出到EXCEL文件时,可以将所述头代码文件与尾代码文件中存储的头代码和尾代码导出到EXCEL文件中,从而大大减少了建立辅助对象的数目,降低了内存资源的占用量。
202:获取所述目标文件存储数据的总数据量;例如:所述基于JAVA技术的应用系统可以通过查询数据库中需要导出的数据的记录行数量并结合客户或项目对导出EXCEL文件属性的要求;例如:每个EXCEL文件中最多存放的sheet数;每个sheet最多存放的记录数等等,动态的设置所述目标文件即EXCEL文件的属性;以此获知所述目标文件即EXCEL文件所能够存储数据的总数据量。
203:根据所述目标文件存储数据的总数据量,通过输入输出流将数据库中相应数据量的数据导出到目标文件。具体的讲,就是所述基于JAVA技术的应用系统根据所述目标文件的存储数据的总数据量,从数据库中去获取相应的数据,从而保证了从数据库中获取的数据都能够存储到所述目标文件即EXCEL文件中,而不会因为EXCEL文件内存资源不足而产生数据溢出,从而大大降低了数据溢出的概率。
基于以上实施例,如图3所示,为本发明实施例提供的一种数据的导出方法具体实现流程图。该方法,具体实现过程如下:
301:获取EXCEL文件的源代码;该步骤的具体实现过程为:
首先,建立一个EXCEL文件,添加表头和若干记录行数据;所述表头是指EXCEL表格每一列的名字,比如员工表的表头需要:姓名、年龄等。这样做可以得到EXCEL表单的标题和内容的组织形式,以便在写入新数据的时候遵守此规则;然后,将其存储为网页格式的文件,例如:将其存储为s1.html,或者存储为s1.htm;最后,通过记事本打开网页s1.html,或者s1.htm,这样,就可以获取到所述EXCEL文件源代码;其中所述EXCEL文件源代码包括:头代码、尾代码与记录行代码。
302:根据所述源代码文件,分别将所述EXCEL文件源代码中的头代码与尾代码存储到头代码文件和尾代码文件中。
303:通过输入输出流,将头代码文件和尾代码文件添加到目标文件;
需要注意的是,以上所述EXCEL文件的头代码与尾代码在每个EXCEL文件中都相同,所以在进行数据库数据导出时,可以预先设置或者获取EXCEL文件的头代码与尾代码,并将其存储到对应的头代码文件与尾代码文件中。当需要将数据库数据导出到EXCEL文件时,可以将所述头代码文件与尾代码文件中存储的头代码和尾代码导出到EXCEL文件中,从而大大减少了建立辅助对象的数目,降低了内存资源的占用量。
304:设置所述目标文件的配置,以便动态调整所述目标文件存储数据的总数据量。具体的讲,就是可以动态的设置所述目标文件即EXCEL文件的属性;例如:每个EXCEL文件重最多存放的sheet数;每个sheet最多存放的记录数等等。
305:获取所述目标文件存储数据的总数据量;具体的讲,就是可以从所述目标文件的配置中获知到所述目标文件存储数据的总数据量。
306:所述根据所述目标文件存储数据的总数据量,按照分页查询的方式获取数据库中数据。
需要说明的是,以上所述按照分页查询的方式获取数据库中数据可以进一步减少内存资源的占用量,例如:按照每个EXCEL文件中一个sheet可以存储的数据量来获取数据库中需要导出的数据,这样每次导出一个sheet的数据量,则需要占用的内存资源也就为一个sheet的数据量,当将所述一个sheet的数据量存储到相应的目标文件的sheet后,则可以将其释放再继续进行下一个sheet的数据量的数据获取。
307:将所述获取到的数据库中数据,通过输入输出流将数据库中相应数据量的数据导出到目标文件。
308:关闭所述输入输出流,释放系统资源。
如图4所示,为本发明实施例提供的一种数据的导出装置,该装置适用于“.cvs”格式文件的导出,该装置具体可以包括:
信息获取单元401,用于获取目标文件存储数据的总数据量;
数据导出单元402,用于根据所述目标文件存储数据的总数据量,通过输入输出流将数据库中相应数据量的数据导出到目标文件。
需要注意的是,所述数据导出单元402,还可以包括:
数据获取子单元,用于所述根据所述目标文件存储数据的总数据量,按照分页查询的方式获取数据库中数据;
数据导出子单元,用于将所述获取到的数据库中数据,通过输入输出流将数据库中相应数据量的数据导出到目标文件。
还需要注意的是,基于以上实施例所述数据的导出装置还可以包括:
设置单元,用于设置所述目标文件的配置,以便动态调整所述目标文件存储数据的总数据量。
还需要注意的是,基于以上实施例所述数据的导出装置还可以包括:
资源释放单元,用于关闭所述输入输出流,释放系统资源。
如图5所示,为本发明实施例提供的另一种数据的导出装置,该装置适用于EXCEL文件的导出,该装置具体可以包括:
信息添加单元501,用于通过输入输出流,将头代码文件和尾代码文件添加到目标文件;
信息获取单元502,用于获取所述目标文件存储数据的总数据量;
数据导出单元503,用于根据所述目标文件存储数据的总数据量,通过输入输出流将数据库中相应数据量的数据导出到目标文件。
需要注意的是,所述数据导出单元503,还可以包括:
数据获取子单元,用于所述根据所述目标文件存储数据的总数据量,按照分页查询的方式获取数据库中数据;
数据导出子单元,用于将所述获取到的数据库中数据,通过输入输出流将数据库中相应数据量的数据导出到目标文件。
需要注意的是,基于以上实施例所述数据的导出装置还可以包括:
代码获取单元,用于获取EXCEL文件的源代码;
存储单元,用于根据所述源代码文件,分别将所述EXCEL文件源代码中的头代码与尾代码存储到头代码文件和尾代码文件中。
还需要注意的是,基于以上实施例所述数据的导出装置还可以包括:
设置单元,用于设置所述目标文件的配置,以便动态调整所述目标文件存储数据的总数据量。
还需要注意的是,基于以上实施例所述数据的导出装置还可以包括:
资源释放单元,用于关闭所述输入输出流,释放系统资源。
本发明实施例提供的一种数据的导出方法及装置,可以通过获取所述目标文件存储数据的总数据量;根据所述目标文件存储数据的总数据量,通过输入输出流将数据库中相应数据量的数据导出到目标文件;还可以通过输入输出流,将头代码文件和尾代码文件添加到目标文件,获取所述目标文件存储数据的总数据量;根据所述目标文件存储数据的总数据量,通过输入输出流将数据库中相应数据量的数据导出到目标文件。与现有技术相比,本方法实施例通过输入输出流以及数据库中相应数据量的数据导出到目标文件,而不是直接将数据库中的数据生成目标文件。这样,可以不用建立较多的辅助对象,从而大大降低内存资源的占用量;与此同时,本发明实施例是根据当前目标文件所能存储数据的总数据量,通过输入输出流将数据库中相应数据量的数据导出到目标文件,使得数据库文件在导出到目标文件的过程中不会产生溢出,从而大大降低了内存溢出的概率,提高了系统的稳定性。
通过以上的实施方式的描述,本领域普通技术人员可以理解:实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如上述方法实施例的步骤,所述的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种数据的导出方法,其特征在于,包括:
获取目标文件存储数据的总数据量;
根据所述目标文件存储数据的总数据量,通过输入输出流将数据库中相应数据量的数据导出到目标文件。
2.根据权利要求1所述的数据的导出方法,其特征在于,该方法还包括:
通过输入输出流,将头代码文件和尾代码文件添加到目标文件。
3.根据权利要求2所述的数据的导出方法,其特征在于,该方法还包括:
获取EXCEL文件的源代码;
根据所述源代码文件,分别将所述EXCEL文件源代码中的头代码与尾代码存储到头代码文件和尾代码文件中。
4.根据权利要求1至3中任意一项所述的数据的导出方法,其特征在于,该方法还包括:
设置所述目标文件的配置,以便动态调整所述目标文件存储数据的总数据量。
5.根据权利要求4所述的数据的导出方法,其特征在于,所述根据所述目标文件存储数据的总数据量,通过输入输出流将数据库中相应数据量的数据导出到目标文件的步骤,包括:
所述根据所述目标文件存储数据的总数据量,按照分页查询的方式获取数据库中数据;
将所述获取到的数据库中数据,通过输入输出流将数据库中相应数据量的数据导出到目标文件。
6.根据权利要求5所述的数据的导出方法,其特征在于,该方法还包括:
关闭所述输入输出流,释放系统资源。
7.一种数据的导出装置,其特征在于,包括:
信息获取单元,用于获取目标文件存储数据的总数据量;
数据导出单元,用于根据所述目标文件存储数据的总数据量,通过输入输出流将数据库中相应数据量的数据导出到目标文件。
8.根据权利要求7所述的数据的导出装置,其特征在于,该装置还包括:
信息添加单元,用于通过输入输出流,将头代码文件和尾代码文件添加到目标文件。
9.根据权利要求8所述的数据的导出装置,其特征在于,该装置还包括:
代码获取单元,用于获取EXCEL文件的源代码;
存储单元,用于根据所述源代码文件,分别将所述EXCEL文件源代码中的头代码与尾代码存储到头代码文件和尾代码文件中。
10.根据权利要求7至9中任意一项所述的数据的导出装置,其特征在于,该装置还包括:
设置单元,用于设置所述目标文件的配置,以便动态调整所述目标文件存储数据的总数据量。
11.根据权利要求10所述的数据的导出装置,其特征在于,所述数据导出单元,包括:
数据获取子单元,用于所述根据所述目标文件存储数据的总数据量,按照分页查询的方式获取数据库中数据;
数据导出子单元,用于将所述获取到的数据库中数据,通过输入输出流将数据库中相应数据量的数据导出到目标文件。
12.根据权利要求11所述的数据的导出装置,其特征在于,该装置还包括:
资源释放单元,用于关闭所述输入输出流,释放系统资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102441027A CN102486772A (zh) | 2009-12-29 | 2009-12-29 | 一种数据的导出方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102441027A CN102486772A (zh) | 2009-12-29 | 2009-12-29 | 一种数据的导出方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102486772A true CN102486772A (zh) | 2012-06-06 |
Family
ID=46152265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102441027A Pending CN102486772A (zh) | 2009-12-29 | 2009-12-29 | 一种数据的导出方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102486772A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106845171A (zh) * | 2017-01-20 | 2017-06-13 | 暨南大学 | 一种Android应用程序代码保护机制鉴别方法 |
CN107145551A (zh) * | 2017-04-27 | 2017-09-08 | 努比亚技术有限公司 | 一种服务器及数据导出方法 |
CN107609159A (zh) * | 2017-09-26 | 2018-01-19 | 恒生电子股份有限公司 | 用于数据加载的方法、装置及计算机可读介质 |
CN107632880A (zh) * | 2017-08-31 | 2018-01-26 | 深圳市丰巢科技有限公司 | 导出excel数据的方法、存储介质及电子设备 |
CN110245177A (zh) * | 2019-06-24 | 2019-09-17 | 四川首汽交投汽车共享科技有限公司 | 一种百万级数据的导出方法 |
CN110413978A (zh) * | 2019-08-02 | 2019-11-05 | 中国工商银行股份有限公司 | 数据分页导出方法、装置、计算机设备和存储介质 |
CN111460021A (zh) * | 2020-04-03 | 2020-07-28 | 中国建设银行股份有限公司 | 数据导出方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231665A (zh) * | 2008-02-20 | 2008-07-30 | 中兴通讯股份有限公司 | 将数据库中数据导出成Excel文件的装置及其方法 |
CN101425039A (zh) * | 2007-11-02 | 2009-05-06 | 鹏智科技(深圳)有限公司 | 控制存储装置文件拷贝的电子设备及方法 |
CN101571861A (zh) * | 2008-04-29 | 2009-11-04 | 阿里巴巴集团控股有限公司 | 一种对数据表进行转换的方法及装置 |
-
2009
- 2009-12-29 CN CN2009102441027A patent/CN102486772A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425039A (zh) * | 2007-11-02 | 2009-05-06 | 鹏智科技(深圳)有限公司 | 控制存储装置文件拷贝的电子设备及方法 |
CN101231665A (zh) * | 2008-02-20 | 2008-07-30 | 中兴通讯股份有限公司 | 将数据库中数据导出成Excel文件的装置及其方法 |
CN101571861A (zh) * | 2008-04-29 | 2009-11-04 | 阿里巴巴集团控股有限公司 | 一种对数据表进行转换的方法及装置 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106845171A (zh) * | 2017-01-20 | 2017-06-13 | 暨南大学 | 一种Android应用程序代码保护机制鉴别方法 |
CN106845171B (zh) * | 2017-01-20 | 2020-01-17 | 暨南大学 | 一种Android应用程序代码保护机制鉴别方法 |
CN107145551A (zh) * | 2017-04-27 | 2017-09-08 | 努比亚技术有限公司 | 一种服务器及数据导出方法 |
CN107145551B (zh) * | 2017-04-27 | 2021-01-01 | 努比亚技术有限公司 | 一种服务器及数据导出方法 |
CN107632880A (zh) * | 2017-08-31 | 2018-01-26 | 深圳市丰巢科技有限公司 | 导出excel数据的方法、存储介质及电子设备 |
CN107632880B (zh) * | 2017-08-31 | 2021-05-04 | 深圳市丰巢科技有限公司 | 导出excel数据的方法、存储介质及电子设备 |
CN107609159A (zh) * | 2017-09-26 | 2018-01-19 | 恒生电子股份有限公司 | 用于数据加载的方法、装置及计算机可读介质 |
CN110245177A (zh) * | 2019-06-24 | 2019-09-17 | 四川首汽交投汽车共享科技有限公司 | 一种百万级数据的导出方法 |
CN110413978A (zh) * | 2019-08-02 | 2019-11-05 | 中国工商银行股份有限公司 | 数据分页导出方法、装置、计算机设备和存储介质 |
CN110413978B (zh) * | 2019-08-02 | 2023-12-12 | 中国工商银行股份有限公司 | 数据分页导出方法、装置、计算机设备和存储介质 |
CN111460021A (zh) * | 2020-04-03 | 2020-07-28 | 中国建设银行股份有限公司 | 数据导出方法及装置 |
CN111460021B (zh) * | 2020-04-03 | 2024-01-19 | 中国建设银行股份有限公司 | 数据导出方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844507B (zh) | 一种数据批处理的方法及设备 | |
CN102486772A (zh) | 一种数据的导出方法及装置 | |
US11449481B2 (en) | Data storage and query method and device | |
CN106126543B (zh) | 一种关系型数据库到MongoDB的模型转换和数据迁移方法 | |
CN109117440B (zh) | 一种元数据信息获取方法、系统和计算机可读存储介质 | |
CN101996067A (zh) | 一种数据导出的方法和装置 | |
CN107992492B (zh) | 一种数据区块的存储方法、读取方法、其装置及区块链 | |
CN105989129A (zh) | 实时数据统计方法和装置 | |
CN107391652A (zh) | 一种模板化报表接口定义系统及方法 | |
CN106649602B (zh) | 业务对象数据处理方法、装置和服务器 | |
CN110019542B (zh) | 企业关系的生成、生成组织成员数据库及识别同名成员 | |
CN102541925A (zh) | 一种实现详细话单的快速存储和检索的方法及装置 | |
CN101430714A (zh) | 一种基于样式的内容结构化加工方法及系统 | |
CN104298736A (zh) | 数据集合连接方法、装置及数据库系统 | |
CN105701251A (zh) | 一种基于对象定义的数据导出导入方法 | |
CN107783974B (zh) | 数据处理系统及方法 | |
CN108319608A (zh) | 访问日志存储查询的方法、装置及系统 | |
CN108984626B (zh) | 一种数据处理方法、装置及服务器 | |
CN106649869A (zh) | 数据库大数据的统计方法及装置 | |
CN112262379A (zh) | 存储数据项并且标识存储的数据项 | |
CN101963993B (zh) | 一种数据库单表记录快速查找的方法 | |
CN113177090A (zh) | 数据处理方法及装置 | |
CN102486775A (zh) | 业务数据的查询方法及装置 | |
CN114064660A (zh) | 基于ElasticSearch的数据结构化分析方法 | |
CN111143329B (zh) | 一种数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120606 |