CN112765250A - 一种支持json数据转化为关系型数据库的方法和装置 - Google Patents
一种支持json数据转化为关系型数据库的方法和装置 Download PDFInfo
- Publication number
- CN112765250A CN112765250A CN202110063490.XA CN202110063490A CN112765250A CN 112765250 A CN112765250 A CN 112765250A CN 202110063490 A CN202110063490 A CN 202110063490A CN 112765250 A CN112765250 A CN 112765250A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- json
- conversion
- reading
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000006243 chemical reaction Methods 0.000 claims abstract description 24
- 238000003780 insertion Methods 0.000 claims description 16
- 230000037431 insertion Effects 0.000 claims description 16
- 238000012795 verification Methods 0.000 claims description 13
- 230000002085 persistent effect Effects 0.000 claims description 12
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 238000013479 data entry Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种支持json数据转化为关系型数据库数据的方法和装置,方法步骤包括:录入需要的数据和数据库信息,验证数据库信息正确性,对录入数据进行分页,数据校验,将数据转化为数据库标识对应的对象,插入数据,失败数据日志收集,装置包括数据库连接器模块、数据分页装置模块、数据库表结构读取装置模块以及数据库表结构转换对象装置模块。本发明实现了对json数据进行解析,并和目前表结构的字段对比,并录入的功能。
Description
技术领域
本发明涉及计算机技术领域,具体来说,涉及一种支持json数据转化为关系型数据库的方法和装置。
背景技术
随着计算机技术的不断发展,开发人员在开发中对于代码方面更是提出了很多方便快捷的实现方法,现有技术中,json数据类型有很多种,(如int、float、double、string、date……)我们在对数据插入数据库时就需要对其类型进行转换避免由于编码格式出错。
发明内容
针对相关技术中的上述技术问题,本发明提出一种支持json数据转化为关系型数据库的方法和装置,能够克服现有技术方法的上述不足。
为实现上述技术目的,本发明的技术方案是这样实现的:
一种支持json数据转化为关系型数据库的方法,步骤包括:处理数据前,需要转化的目标的表结构和数据库相关信息和录入的数据集;在正式转化数据库对象前,需要对数据库相关信息的正确性做验证,即使用输入的数据库信息来访问数据库进行验证;根据数据的大小,对数据新型适当拆分,分页读取数据;数据读取完成后,进行校验步骤;校验步骤结束后,将json的数据对象转换成数据库对象;一批数据达到阈值或者内存限制或没有数据时,则进行数据插入操作;最后返回成功。
进一步地,验证数据库信息中,如果无法访问目标数据库地址,或用户信息有误,或者没有相关权限都需要进行报错。
进一步地,分页读取数据的步骤为:设置一个空间阈值,遍历读取数据。
进一步地,校验步骤为:做第一次录入数据操作时,读取数据库结构,将数据库结构的数据封装成对象加载到内存,遍历每一条数据的每一个参数,并对每一个参数判断其类型。
进一步地,类型判断完成后,要对字段的长度进行判断,还需要对字段的编码进行格式转换。
进一步地,将json的数据对象转换成数据库对象的步骤为:第一次读取数据库表结构时,根据从数据库读取出来的表结构生成一个持久化类,然后将json数据逐一转换成持久化对象,并添加至待插入的对象列表中,等待数据插入。
进一步地,数据插入操作步骤为:首先进行尝试连接数据库;连接成功后,将这一批数据转化成sql insert语句插入;完成后断开数据库的连接。
根据本发明的另一方面,提供了一种支持json数据转化为关系型数据库的装置,包括数据库连接器模块、数据分页装置模块、数据库表结构读取装置模块以及数据库表结构转换对象装置模块,其中,
所述数据库连接器模块,用于在连接数据库前,对数据库的相关信息做全面的验证,验证若无法访问目标数据库则报错。
所述数据分页装置模块,用于根据数据库中的数据的大小,对数据拆分,进行大批量的数据分页读取数据。
所述数据库表结构读取模块,用于对数据库结构进行读取,将数据库结构中的数据封装加载,再进行遍历读取。
所述数据库表结构转换对象装置模块,用于读取数据库表结构结束后,将json的数据进行转换,转换成持久化对象,然后等待数据插入。
数据是通过转换装置转换为关系型数据库数据,所述转换装置通过全局参数管理容器和数据库连接装置对数据进行转换。
本发明的有益效果:通过对数据库信息校验和连接并操作数据库这一方法,实现了对json数据进行解析,并和目前表结构的字段对比,并录入的功能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例所述的支持json数据转化为关系型数据库数据的方法和装置的装置结构示意图。
图2是根据本发明实施例所述的支持json数据转化为关系型数据库数据的方法和装置的装置转换流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
如图1-2所示,根据本发明实施例所述的一种支持json数据转化为关系型数据库数据的方法,包括以下步骤:
在正式处理数据前,需要准备转化的目标的表结构和数据库相关信息和录入的数据集(json数组对象)的json数据;
进行验证数据库信息的正确性,在正式转化数据库对象前,需要对数据库相关信息做验证,即使用输入的数据库信息来访问数据库进行验证;
根据数据的大小,对数据进行适当的拆分,也就是分页读取数据;
待数据读取完成(达到阈值或制定的条数或没有数据可读),进行校验;
待校验结束后,需要将json的数据对象转换成数据库对象;
完成上述操作后,一批数据达到阈值或者内存限制或没有数据时,则进行数据插入操作;
完成所有操作后,返回成功。
另一方面,根据本发明实施例所述的一种支持json数据转化为关系型数据库数据的装置,包括:数据库连接器模块,在连接数据库前,对数据库的相关信息做全面的验证,验证若无法访问目标数据库则报错。数据分页装置模块,用于根据数据库中的数据的大小,对数据拆分,进行大批量的数据分页读取数据。数据库表结构读取模块,用于对数据库结构进行读取,将数据库结构中的数据封装加载,再进行遍历读取。数据库表结构转换对象装置模块,用于读取数据库表结构结束后,将json的数据进行转换,转换成持久化对象,然后等待数据插入。
为了方便理解本发明的上述技术方案,以下通过具体使用方式上对本发明的上述技术方案进行详细说明。
首先在正式处理数据之前需要如下的数据结构的json数据:
1.需要转化的目标表的表结构和数据库相关信息;
2.录入的数据集(json数组对象)。
进行验证数据库信息的正确性:
在正式转化数据库对象前,需要对数据库的相关信息做验证,即使用输入的数据库信息来访问数据库进行验证,如果无法访问目标数据库地址,或用户信息有误,或者没有相关权限都需要报错。
根据数据的大小,对数据要进行适当拆分,也就是分页读取数据,具体的步骤如下:
1.设置一个空间阈值(这个阈值由分配的内存大小确定);
2.遍历读取数据,当数据接近阈值或者制定的条数,停止读取。
待数据读取完成(达到阈值或制定的条数或没有数据可读),进行校验步骤,具体的步骤如下:
1.在第一次做录入数据操作时,读取数据库结构,将数据库结构的数据封装成对象加载到内存,遍历每一条数据的每个参数(适当地从驼峰标识转移成数据库常用的带下划线的字段名称)判断类型,比如字符串,整型等类型,日期类型根据json的输入格式进行转换,布尔类型适当转换成tinyint(1)等类型。
2.类型判断完成后要对字段的长度进行判断,如果json录入的长度大于数据库表结构定义的长度需要报错。
3.类型判断之后,需要对字段的编码进行转换,要转换成数据库字段对应的编码。
待校验步骤结束后,需要将json的数据对象转换成数据库对象,具体的步骤如下:
1.第一次读取数据库表结构时,根据从数据库读取出来的表结构生成一个持久化类。
2.将json数据逐一转换成持久化对象,并添加至待插入的对象列表中,等待数据插入。
等到完成上述操作后,一批数据达到阈值或者内存限制或者没有新数据时,将进行数据插入操作,具体的操作步骤如下:
1.尝试连接数据库;
2.连接数据库成功后,将这一批数据转化成sql insert语句插入;
3.如果其中有一条数据插入失败,将会有一个专门用于获取失败语句的文本文件获取这一条生成的sql语句记录;
4.等到所有数据都执行过插入操作后,将失败的文本中的sql语句连接数据库后再次执行,如果再次失败则再写入一个文件,最后插入完成后,如果失败文件中仍有sql内容,则报错,并将文件输出;
5.断开数据库连接。
完成所有操作后,返回成功。
综上所述,借助于本发明的上述技术方案,通过对数据库信息校验和连接并操作数据库这一方法,实现了对json数据进行解析,并和目前表结构的字段对比,并录入的功能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种支持json数据转化为关系型数据库数据的方法,包括以下步骤:
S1:准备转化的目标的表结构、数据库相关信息和录入的数据集的json数据;
S2:需要对数据库相关信息的正确性做验证,即使用输入的数据库信息来访问数据库进行验证;
S3:根据数据的大小,对数据进行拆分,进行分页读取数据;
S4:数据读取完成后,进行校验;
S5:校验结束后,将json的数据对象转换成数据库对象;
S6:一批数据达到阈值或者内存限制或没有数据时,则进行数据插入操作;
S7:最后返回成功。
2.根据权利要求1所述的支持json数据转化为关系型数据库数据的方法,其特征在于,所述验证数据库信息中,如果无法访问目标数据库地址,或用户信息有误,或者没有相关权限都需要进行报错。
3.根据权利要求1所述的支持json数据转化为关系型数据库数据的方法,其特征在于,所述分页读取数据的步骤为:设置一个空间阈值;遍历读取数据。
4.根据权利要求1所述的支持json数据转化为关系型数据库数据的方法,其特征在于,所述校验步骤为:做第一次录入数据操作时,读取数据库结构;将数据库结构的数据封装成对象加载到内存;遍历每一条数据的每一个参数,并对每一个参数判断其类型。
5.根据权利要求4所述的支持json数据转化为关系型数据库数据的方法,其特征在于,所述类型判断完成后,要对字段的长度进行判断,还需要对字段的编码进行格式转换。
6.根据权利要求1所述的支持json数据转化为关系型数据库数据的方法,其特征在于,将json的数据对象转换成数据库对象的步骤为:第一次读取数据库表结构时,根据从数据库读取出来的表结构生成一个持久化类,然后将json数据逐一转换成持久化对象,并添加至待插入的对象列表中,等待数据插入。
7.根据权利要求1所述的支持json数据转化为关系型数据库数据的方法,其特征在于,所述数据插入操作步骤为:首先进行尝试连接数据库;连接成功后,将这一批数据转化成sql insert语句插入,完成后断开与数据库的连接。
8.一种支持json数据转化为关系型数据库数据的装置,其特征在于,包括数据库连接器模块、数据分页装置模块、数据库表结构读取装置模块以及数据库表结构转换对象装置模块,其中,
所述数据库连接器模块,用于在连接数据库前,对数据库的相关信息做全面的验证,验证若无法访问目标数据库则报错;
所述数据分页装置模块,用于根据数据库中的数据的大小,对数据拆分,进行大批量的数据分页读取数据;
所述数据库表结构读取模块,用于对数据库结构进行读取,将数据库结构中的数据封装加载,再进行遍历读取;
所述数据库表结构转换对象装置模块,用于读取数据库表结构结束后,将json的数据进行转换,转换成持久化对象,然后等待数据插入。
9.根据权利要求8所述的支持json数据转化为关系型数据库数据的装置,其特征在于,数据是通过转换装置转换为关系型数据库数据,所述转换装置通过全局参数管理容器和数据库连接装置对数据进行转换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110063490.XA CN112765250B (zh) | 2021-01-18 | 2021-01-18 | 一种支持json数据转化为关系型数据库的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110063490.XA CN112765250B (zh) | 2021-01-18 | 2021-01-18 | 一种支持json数据转化为关系型数据库的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112765250A true CN112765250A (zh) | 2021-05-07 |
CN112765250B CN112765250B (zh) | 2024-05-28 |
Family
ID=75702912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110063490.XA Active CN112765250B (zh) | 2021-01-18 | 2021-01-18 | 一种支持json数据转化为关系型数据库的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112765250B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541966A (zh) * | 2010-12-30 | 2012-07-04 | 国际商业机器公司 | 用于验证数据库系统正确性的方法和装置 |
CN103116627A (zh) * | 2013-01-31 | 2013-05-22 | 汉柏科技有限公司 | 一种高并发soa技术访问数据库的方法和系统 |
CN105045817A (zh) * | 2015-06-26 | 2015-11-11 | 司法部司法鉴定科学技术研究所 | 基于事务日志的SQL Server数据库取证分析系统及方法 |
CN105528556A (zh) * | 2015-12-03 | 2016-04-27 | 中国人民解放军信息工程大学 | 一种混合的SQLite3安全访问方法 |
CN107423061A (zh) * | 2017-07-12 | 2017-12-01 | 江苏速度信息科技股份有限公司 | 一种基于ison数据的表单生成方法 |
CN108009282A (zh) * | 2017-12-22 | 2018-05-08 | 武汉楚鼎信息技术有限公司 | 一种json数据同步到关系型数据库的方法及系统装置 |
US20190102389A1 (en) * | 2017-10-04 | 2019-04-04 | Dell Products Lp | Storing and processing json documents in a sql database table |
CN111159264A (zh) * | 2019-11-28 | 2020-05-15 | 京东数字科技控股有限公司 | 一种数据处理方法及装置 |
CN111984739A (zh) * | 2019-05-24 | 2020-11-24 | 中移(苏州)软件技术有限公司 | 一种xml与关系型数据库的转换方法、终端和存储介质 |
-
2021
- 2021-01-18 CN CN202110063490.XA patent/CN112765250B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541966A (zh) * | 2010-12-30 | 2012-07-04 | 国际商业机器公司 | 用于验证数据库系统正确性的方法和装置 |
CN103116627A (zh) * | 2013-01-31 | 2013-05-22 | 汉柏科技有限公司 | 一种高并发soa技术访问数据库的方法和系统 |
CN105045817A (zh) * | 2015-06-26 | 2015-11-11 | 司法部司法鉴定科学技术研究所 | 基于事务日志的SQL Server数据库取证分析系统及方法 |
CN105528556A (zh) * | 2015-12-03 | 2016-04-27 | 中国人民解放军信息工程大学 | 一种混合的SQLite3安全访问方法 |
CN107423061A (zh) * | 2017-07-12 | 2017-12-01 | 江苏速度信息科技股份有限公司 | 一种基于ison数据的表单生成方法 |
US20190102389A1 (en) * | 2017-10-04 | 2019-04-04 | Dell Products Lp | Storing and processing json documents in a sql database table |
CN108009282A (zh) * | 2017-12-22 | 2018-05-08 | 武汉楚鼎信息技术有限公司 | 一种json数据同步到关系型数据库的方法及系统装置 |
CN111984739A (zh) * | 2019-05-24 | 2020-11-24 | 中移(苏州)软件技术有限公司 | 一种xml与关系型数据库的转换方法、终端和存储介质 |
CN111159264A (zh) * | 2019-11-28 | 2020-05-15 | 京东数字科技控股有限公司 | 一种数据处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
王华志: "基于JSON 的异构数据源数据交换技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 1, 15 January 2018 (2018-01-15), pages 138 - 898 * |
Also Published As
Publication number | Publication date |
---|---|
CN112765250B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111367886B (zh) | 数据库中数据迁移的方法及装置 | |
CN110941593B (zh) | 一种文件入库系统及方法 | |
CN109558525B (zh) | 一种测试数据集的生成方法、装置、设备和存储介质 | |
CN112231407B (zh) | PostgreSQL数据库的DDL同步方法、装置、设备和介质 | |
CN109165209B (zh) | 数据库中对象类型的数据校验方法、装置、设备及介质 | |
CN115391439B (zh) | 文档数据导出方法、装置、电子设备和存储介质 | |
CN113761879B (zh) | 报文格式校验方法、装置以及存储介质 | |
CN113127108A (zh) | 业务请求的处理方法及装置、存储介质以及电子设备 | |
CN111259038A (zh) | 一种数据库查询及数据导出方法、系统、介质及设备 | |
CN117785723A (zh) | 动态接口参数关联方法、装置及电子设备 | |
CN111078529B (zh) | 客户端写入模块测试方法、装置、电子设备 | |
CN112765250B (zh) | 一种支持json数据转化为关系型数据库的方法和装置 | |
CN115495082B (zh) | Tlv格式数据自动转换方法及相关设备 | |
CN110688823A (zh) | Xml文件验证方法及装置 | |
CN116466927A (zh) | 批处理任务的代码生成方法、系统、电子设备及存储介质 | |
CN114461193B (zh) | 一种通信协议代码的生成方法、装置、设备及存储介质 | |
CN114676049A (zh) | 一种用例测试方法、装置、电子设备及存储介质 | |
CN116243901A (zh) | 一种用于前端页面多语言项目快速开发的方法及系统 | |
CN112651214B (zh) | 数据表格明文转换为便于程序可读取的二进制密文的方法 | |
CN110888874B (zh) | 一种通过Excel创建表单的装置、方法及存储介质 | |
CN110888641B (zh) | 一种脚本自动生成方法、装置、服务器及存储介质 | |
CN115774745A (zh) | 一种针对大容量Excel文件数据的抽取方法及系统 | |
CN113238940A (zh) | 一种接口测试结果的比对方法、装置、设备和存储介质 | |
CN113176877A (zh) | 实体类生成方法、装置及存储介质 | |
CN112733199A (zh) | 数据处理方法、装置、电子设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |