CN104915383B - 一种通用数据库访问中自动适配对象的方法 - Google Patents

一种通用数据库访问中自动适配对象的方法 Download PDF

Info

Publication number
CN104915383B
CN104915383B CN201510258143.7A CN201510258143A CN104915383B CN 104915383 B CN104915383 B CN 104915383B CN 201510258143 A CN201510258143 A CN 201510258143A CN 104915383 B CN104915383 B CN 104915383B
Authority
CN
China
Prior art keywords
database
data
programming language
field
dictionary
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.)
Active
Application number
CN201510258143.7A
Other languages
English (en)
Other versions
CN104915383A (zh
Inventor
雷明涛
田少鹏
何赟
薛松
郭灵波
印小冬
李怡谦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 28 Research Institute
Original Assignee
CETC 28 Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CETC 28 Research Institute filed Critical CETC 28 Research Institute
Priority to CN201510258143.7A priority Critical patent/CN104915383B/zh
Publication of CN104915383A publication Critical patent/CN104915383A/zh
Application granted granted Critical
Publication of CN104915383B publication Critical patent/CN104915383B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种通用数据库访问中自动适配对象的方法,包括通过数据库数据目录自动生成数据字典和编程语言数据结构;通过数据字典技术实现数据库表与编程语言应用对象的自动适配;通过这种方法实现的数据库访问接口可以向用户提供无SQL语句的数据库访问,实现了数据库表与编程语言数据结构的对象化、数据库访问请求自动适配对象和数据库查询结果自动适配对象,这种对象化在数据库与应用对象之间建立“动态耦合”关系,当数据库设计变化后可以通过自动化的方法以重新生成数据字典和编程语言数据结构的方式对其进行重新对象化,解决了数据库应用程序对具体数据库结构依赖性过大、软件的可扩充性差和通用性不高等问题。

Description

一种通用数据库访问中自动适配对象的方法
技术领域
本发明属于计算机应用领域,涉及一种通用数据库访问中自动适配对象的方法,特别是涉及到数据库系统应用中实现数据库系统的表结构与应用软件的应用对象自动匹配的方法。
背景技术
在电子信息系统设计中数据库系统是不可或缺的一个重要组成部分,而数据的存取功能则是数据库系统的最基本的功能。传统的查询数据存取方法是调用数据库专用接口撰写结构化查询语言(Structured Query Language,简称SQL)实现的,这种存取方法对软件开发者的数据库基础要求较高,在查询记录时需要根据查询字段撰写查询语句,然后将查询结果赋值到编程语言的应用对象中,在插入记录、更新记录和删除记录时也需要根据编程语言的应用对象组织SQL语句进行写库,这就使得编程语言中的对象和数据库紧密耦合,数据库应用程序对具体数据库结构依赖性过大,当应用对象发生变化后需要扩展或增加新的查询,软件的可扩充性和通用性不高。
目前,国内外学者通过对数据库的数据目录的研究,提出了基于数据字典实现的通用数据库存取技术,但没有实现通过数据字典将数据库对象与编程语言应用对象进行对象化关联,另外业界也有通过序列化的方法实现数据库表和编程语言应用对象数据结构对象化的成功案例,但是序列化的实现方法虽然解决了数据库表与应用对象的自动对象化问题,但必须为每张表单独设计一套存取接口,后期维护工程浩大,特别是数据库系统比较庞大或者变化比较频繁的应用场景。
发明内容
发明目的:本发明的目的在于解决数据库应用软件的可扩充性和通用性问题,提供了一种通用数据库访问中数据查询、数据存储的自动适配对象的方法,在数据库存取数据时通过本发明将数据库表与编程语言应用对象自动适配,提高数据库应用软件的可扩充性和通用性。
为了解决上述技术问题,本发明公开了一种通用数据库访问中数据查询、数据存储(包括数据库插入、数据库更新和数据库删除操作)的自动适配对象的方法,这种自动适配对象方法的核心是根据数据字典对数据库请求中的编程语言应用对象进行按字节存取,发明内容包括根据数据库数据目录生成的数据字典构造与数据库表对应的编程语言数据对象,通过构造的编程语言数据对象实现对数据库的访问,所述对数据库的访问包括数据库表与编程语言数据结构的对象化、数据库访问请求自动适配对象和数据库查询结果自动适配对象,通过对象化在数据库与应用对象之间建立了“动态耦合”关系,当数据库设计变化后可以通过自动化的方法以重新生成数据字典和编程语言数据结构的方式对其进行重新对象化。
其中,数据库表与编程语言数据结构的对象化包括如下步骤:
步骤1-1,根据数据库的数据目录提取数据库的用户数据字典;
步骤1-2,根据数据库的数据目录提取数据库的表或视图数据字典,并将其与用户数据字典关联;
步骤1-3,根据数据库的数据目录提取数据库的字段数据字典,并将其与表或视图数据字典关联;
步骤1-4,根据数据库的表或视图数据字典和字段数据字典,以及数据库字段类型与编程语言数据类型的对应关系,生成与数据库对象对应的编程语言数据结构,根据生成的编程语言数据结构构造编程语言数据对象。
数据库表与编程语言数据结构的对象化采用数据字典技术对编程语言的数据结构进行定义,数据字典分为用户数据字典、表或视图数据字典和字段数据字典,三类数据字典生成后以文件的形式存储,数据字典文件分为两部分:文件头和数据字典内容,三类数据字典的文件头的格式相同,数据字典文件头包括文件名、文件长度、记录个数、单个记录的长度,校验码和记录起始位置的偏移量,三类数据字典文件内容包括:
(a)用户数据字典:包括用户名、用户ID和用户下的表和视图的总数目;
(b)表或视图数据字典:包括表名或视图名、用户的ID、表ID或视图ID、表或视图的字段数目、表的主键字段数目和表的主键字段的索引;
(c)字段数据字典:包括字段名、用户ID、表或视图ID、字段ID、字段类型和字段长度;
其中,数据字典中的字段类型是与数据库字段类型对应的编程语言中的类型,数据库字段类型中的整数对应编程语言的整数、浮点数对应编程语言的浮点数、字符串对应编程语言的字符数组、时间对应编程语言的时间结构体、二进制大字段对应编程语言的由一个长度字段和一个指针组成的结构体,字段数据字典中的字段长度为编程语言中的数据类型长度。
当数据库结构变化时,通过更新数据字典和编程语言的数据结构来实现数据库与编程语言数据结构的重新适配,数据字典通过自动化生成,编程语言的数据结构也通过自动化编程技术自动生成。
编程语言的数据结构定义中按照数据库字段定义顺序定义,且设置字节对齐方式为单字节对齐,并将编程语言的数据对象根据数据字典编码成统一的数据库访问请求,使数据库访问请求泛化,从而可以实现统一的数据库访问接口。
数据库访问请求自动适配对象包括如下步骤:
步骤2-1,根据编程语言数据对象构建数据库访问请求;
步骤2-2,根据数据库访问请求中的数据库用户名、表名或视图名查询数据字典;
步骤2-3,获取到指定用户、指定表或视图以及表或视图所有字段的数据字典;
步骤2-4,根据数据字典编码编程语言数据对象,使数据库访问请求泛化;
步骤2-5,使用统一接口处理泛化后的数据库访问请求,根据数据字典将编程语言数据对象还原,获取到每个成员的值;
步骤2-6,将还原后的编程语言数据对象的数据成员与数据库表或视图的字段自动适配;
步骤2-7,构造数据库方法访问数据库。
数据库查询结果自动适配对象包括如下步骤:
步骤3-1,查询数据字典;
步骤3-2,获取到数据字典;
步骤3-3,根据数据字典获取查询结果输出对象的数据结构;
步骤3-4,逐个查询数据库的字段值;
步骤3-5,根据建立的数据库表或视图的字段与编程语言数据结构成员的对象化关系自动适配。
有益效果:本发明基于数据字典技术提出了一种通用数据库访问中的自动适配对象的方法,可以完成数据库查询、插入、更新和删除记录时数据库表结构与编程语言数据对象的自动适配,可以在数据库应用中通过编程语言数据对象访问数据库,基于这种方法提供的数据库访问接口无需数据库基础(不需要写SQL语句)、对所有数据库表使用统一的访问方式,解决了数据库应用程序对具体数据库结构依赖过大,具有开发容易、开发的软件可复用程度和可扩充性高等优点,是实现对象化数据库通用访问的一种关键技术。通过本发明方法实现对象化的数据库访问,可以直接进行通用的对象化数据库应用软件开发或开发商用的对象化数据库访问中间件软件。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明数据字典结构及关联关系示意图。
图2为表T和编程语言数据结构S的对象化示意图。
图3为编程语言数据结构S的内存存储示意图。
图4为数据库访问请求自动适配对象的流程图。
图5为数据库查询结果自动适配对象的流程图。
具体实施方式
本发明公开了一种通用数据库访问中数据查询、数据存储(包括数据库插入、数据库更新和数据库删除操作)的自动适配对象的方法,发明内容包括数据库表与编程语言数据结构的对象化、数据库访问请求自动适配对象和数据库查询结果自动适配对象,实施方式如下:
1.数据库表与编程语言数据结构的对象化
本发明的自动适配基于自建的数据字典技术,这种数据字典可以从数据库系统的数据目录中提取,数据字典分为用户数据字典、表或视图数据字典和字段数据字典三类,三类数据字典生成后以文件的形式存储,在应用程序启动时加载到内存中,数据字典文件分为两部分:文件头和数据字典内容,三类字典的文件头的格式相同,包括文件名、文件长度、记录个数、单个记录的长度,校验码和记录起始位置的偏移量(跳过文件头的第一条字典记录的文件偏移量),三类数据字典的内容包括:
(1)用户数据字典:包括用户名、用户ID和用户下的表和视图的总数目;
(2)表或视图数据字典:包括表名或视图名、用户的ID、表或视图ID、表或视图的字段数目、表的主键字段数目和表的主键字段的索引(由表的主键字段ID组成);
(3)字段数据字典:包括字段名、用户ID、表或视图ID、字段ID、字段类型和字段长度。
数据字典中的字段类型是与数据库字段类型对应的编程语言中的类型,数据库字段类型中的整数对应编程语言的整数、浮点数对应浮点数、字符串对应字符数组、时间对应时间结构体、二进制大字段对应由一个长度字段和一个指针组成的结构体,字段数据字典中的字段长度为编程语言中的数据类型长度。这样根据数据字典就可以自动生成编程语言的数据结构,特别强调的是编程语言的数据结构定义中设置字节对齐方式为单字节对齐,以便于按字节存取。
2.数据库访问请求自动适配对象
假设:用户U有一张数据库表T有m个字段,字段为T1,T2,…,Tm,Tm为二进制大字段,其他字段为数据库普通字段类型,如图3所示,根据数据字典生成的编程语言数据结构为S,S的数据成员分别为S1,S2,…,Sm,用户U的数据字典为Du,表T的表数据字典为Dt,字段T1,T2,…,Tm的字段数据字典分别为Dt1,Dt2,…,Dtm,字段数据字典Dt1,Dt2,…,Dtm中字段T1,T2,…,Tm的字段长度为L1,L2,…,Lm,数据结构S的长度为L,根据“1.数据库表与编程语言数据结构的对象化”中设计
数据库访问请求中带入泛化后的S的对象指针Ps(即无名指针,不知道是S的对象指针)并指定了要操作用户U的表T,将数据库访问请求自适应对象的方法为,通过用户名U找到该用户的数据字典Du,然后再根据表名找到表的数据字典Dt,接着可以获取表T的字段T1,T2,…,Tm的字段字典Dt1,Dt2,…,Dt,L1,L2,…,Lm即为数据结构S中的m个成员的数据长度,那么Ps起始地址的L个字节即为Ps指向的对象,根据成员长度L1,L2,…,Lm按位读取Ps即可获取Ps指向的类型为S的对象的成员S1,S2,…,Sm的值,即将地址Ps~Ps+L1为S1的值,地址Ps+L1~Ps+L2为S2的值,依此类推,地址为Sm的值,将S1,S2,…,Sm与字段T1,T2,…,Tm匹配即可实现数据库访问请求中编程语言数据结构与数据库表结构自动适配。
特殊说明,二进制大字段Tm的长度为Sm前4个字节,假定为N,接下来的4个字节指向地址起始的的N个字节即为Tm的值。
3.数据库查询结果自动适配对象
当数据库请求为查询请求时,需要将数据库查询到每条记录转换成编程语言的数据结构格式,下面同样以“2.数据库访问请求自动适配对象”中的假设条件作为本节的假设条件,假设查询所有字段的内容,泛化的指针Po为查询结果起始地址,将查询结果转化为编程语言数据结构即为将查询到的字段T1,T2,…,Tm的值转换成S的对象指针Po数据成员S1,S2,…,Sm的过程。
同“2.数据库访问请求自动适配对象”中方法一样获知到表T的字段T1,T2,…,Tm的字段字典Dt1,Dt2,…,Dt、输出结果数据类型为S、以及其对应的编程语言数据结构S的成员S1,S2,…,Sm的数据长度,L1,L2,…,Lm,依次提取数据库中字段T1,T2,…,Tm值并将其按位赋给起始地址为Po的地址,将Po起始的地址分为m份,每份的长度依次为L1,L2,…,Lm,将Ti、(0<i<=m)的值存在第i个单元即实现了数据库查询结果自动适配编程语言数据结构对象。
特殊说明,与Lm对应S的数据成员Sm的前4个字节存储二进制大字段Lm的结果长度,Sm的接下来的4个字节指向的地址存储Lm的值。另外,查询表T的个别字段的查询结果自动适配对象方法与查询全部类似,假设表T的成员Ti(0<i<=m)没有被查询,则只需要进行查询结果对象化时跳过Ti字段的长度Li即可。
实施例1
下面结合附图,对本发明的应用,进行详细说明。
图1、图2和图3展示了数据库表与编程语言数据结构的对象化过程,图1中描述了用户数据字典、表或视图数据字典和字段数据字典的关联关系,根据图1可知通过用户名、表名或视图名即可以得到该用户下指定表或视图数据字典和字段数据字典,根据这些数据字典即可得到图2和图3;图2描述了数据库表结构中字段与编程语言数据结构的数据成员的对象化映射关系(视图的字段与编程语言数据结构的数据成员的对象化映射关系与此类似,此处及下文不再赘述),图3描述了编程语言数据结构的存储结构,根据图2和图3即可实现数据库表的记录值与编程语言数据结构的对象的自动适配。
步骤1-1,根据数据库的数据目录提取数据库的用户数据字典;
步骤说明:根据数据库的数据目录,查询数据库下所有用户,获取所有用户的数据字典,用户数据字典包括用户名、用户ID和用户下表和视图的总数目;
步骤1-2,根据数据库的数据目录提取数据库的表或视图数据字典,并将其与用户数据字典关联;
步骤说明:根据数据库的数据目录,查询每个用户下所有表和视图,获取每个用户下的所有表和视图的数据字典,表或视图数据字典包括表或视图名、表或视图ID、用户ID、表或视图的字段数目、表的关键字数目(视图无关键字)和表的关键字索引(视图无关键字索引),根据用户ID与用户数据字典关联;
步骤1-3,根据数据库的数据目录提取数据库的字段数据字典,并将其与表或视图数据字典关联;
步骤说明:根据数据库的数据目录,查询每个表或视图下所有字段,获取每个用户下的所有表和视图的字段数据字典,字段数据字典包括字段名、字段ID、表或视图ID、用户ID、字段类型和字段长度,根据表或视图ID与表或视图数据字典关联,进而通过用户ID与用户数据字典关联;
步骤1-4,根据数据库的表或视图数据字典和字段数据字典,以及数据库字段类型与编程语言数据类型的对应关系,生成与数据库对象对应的编程语言数据结构。
步骤说明:通过图2中对应关系生成编程语言中与数据库对象对应的数据结构,通过图3实现数据库表与编程语言数据结构的对象化。
实施例2
图4展示了数据库访问请求自动适配对象的流程,假设访问的数据库表为表T(视图的操作与表相同,此处不再赘述),与表T对应的编程语言数据结构为S,具体说明如下:
步骤2-1,根据编程语言数据对象构建数据库访问请求;
步骤说明:根据图2创建与表T对应的编程语言数据结构S的编程语言数据对象,并对需要操作的数据库表字段对应S的对象成员进行赋值,并提供对表T的访问说明,如表T所在的数据库用户名、表名(即表T)、操作类型(插入、查询、删除和修改)、表T的字段操作类型(如输入字段、输出字段、条件字段、条件兼输入字段、条件兼输出字段等),将编程语言数据对象泛化为一个匿名数据块(只提供长度,不提供类型)与对表T的访问说明一起作为数据访问请求的输入。
步骤2-2,根据数据库访问请求中的数据库用户名、表名查询数据字典;
步骤说明:根据步骤2-1中提供的数据库用户名和表或视图名称查询系统加载的数据字典(数据字典由“实施例1”生成)。
步骤2-3,获取到指定用户、指定表或视图以及表或视图所有字段的数据字典;
步骤说明:根据指定的用户名、表(即表T)从系统加载的数据字典中获取到表T的表数据字典和表T下属字段的字段数据字典以及表T所属用户的用户字典。
步骤2-4,根据数据字典编码编程语言数据对象,使数据库访问请求泛化;
步骤说明:根据查询到的数据字典(如图1描述)复原表T与对应编程语言数据结构S(如图2所示)的对应关系和编程语言数据结构每个成员的类型和成员长度(如图3所示),根据图3中数据结构S的存储描述按字节读取即可获取每个成员的值,然后根据数据字典对2-1中的数据访问请求进行编码,即:使用用户ID标识访问的数据库用户,使用表ID标识访问的表T,使用字段ID标识访问的表T的字段,将编程语言数据结构的每个成员的值编码为“类型-长度-值”的形式,从而使数据库访问请求泛化为统一的请求。
步骤2-5,将泛化后的数据库访问请求中的编程语言数据对象还原,获取到每个成员的值;
步骤说明:此步骤为2-4的逆向过程,通过编码后的用户ID、表或视图ID和字段ID获取到对应的数据字典,根据图2还原编程语言数据结构S,根据泛化的数据访问请求中“类型-长度-值”还原S的对象的值。
步骤2-6,将还原后的编程语言数据对象的数据成员与数据库表的字段自动适配;
步骤说明:根据图2中数据库表S的字段Si与编程语言数据结构T的成员Ti之间的对应关系得到数据库表T的字段值。
步骤2-7,构造数据库方法访问数据库。
步骤说明:根据从泛化后的数据库访问请求中解析出的数据库用户名、表或视图名、操作类型(插入、查询、删除和修改)、表T的字段操作类型(如输入字段、输出字段、条件字段、条件兼输入字段、条件兼输出字段等)等信息,以及2-6中获取的数据库表T字段Ti的值,从而构造SQL语句访问数据库。
小结:步骤2-1~步骤2-4为数据库访问请求泛化过程,可以实现一个未知编程语言结构的数据块,根据数据块的长度、数据库用户名和表或视图名等构造统一的数据库访问请求;步骤2-5~步骤2-7为泛化后的统一的数据库访问请求的处理过程,实现根据数据字典解码泛化后的数据库访问请求,并据此构造数据库访问的SQL语句。通过步骤2-1~2-7实现了通过编程语言数据对象对数据库的访问,通过这种方法设计的数据库访问接口可以实现无SQL语句的数据库访问。
实施例3
图5展示了数据库查询结果自动适配对象的流程图,当数据库访问请求为查询操作时,数据库查询结果自动适配对象为数据库访问请求自动适配对象的后续过程,即图5为图4的延续,假设访问的数据库表为表T(视图的操作与表相同,此处不再赘述),与表T对应的编程语言数据结构为S。具体说明如下:
步骤3-1,查询数据字典;
步骤说明:根据当前查询的数据库用户名和表名查询系统加载的数据字典(数据字典由“实施例1”生成)。
步骤3-2,获取到数据字典;
步骤说明:根据指定的用户名、表名(即表T)从系统加载的数据字典中获取到表T的表数据字典和表T所有下属字段的字段数据字典。
步骤3-3,根据数据字典获取查询结果输出对象的数据结构;
步骤说明:通过查询到的表T的数据字典和表T下属的字段数据字典(如图1格式)可以获知表T与编程语言数据结构S的对应关系(如图2所示)和编程语言数据结构每个成员的类型和成员长度(如图3所示),S即为表T查询结果输出对象的编程语言数据结构。
步骤3-4,逐个查询数据库的字段值;
步骤说明:通过数据库提供的原生访问接口及数据库方法逐条提取本次查询的结果,逐个获取每条查询结果中的查询字段值。
步骤3-5,根据建立的数据库表或视图的字段与编程语言数据结构成员的对象化关系自动适配。
步骤说明:根据图2中表T的字段Ti与编程语言数据结构S的成员Si的对应关系确定Si的值,根据图3中描述的编程语言数据结构S的内存存储情况按字节向“输出内存块”中写S的成员Si的值,将查询结果转化为编程语言数据对象,从而实现数据库查询结果自动适配对象。
小结:步骤3-1~步骤3-5实现了将数据库查询结果转化为编程语言数据结构的格式,可以通过编程语言数据对象的形式直接访问。
本发明提供了一种通用数据库访问中自动适配对象的方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

Claims (1)

1.一种通用数据库访问中自动适配对象的方法,其特征在于,包括数据库表与编程语言数据结构的对象化、数据库访问请求自动适配对象和数据库查询结果自动适配对象;
数据库表与编程语言数据结构的对象化采用数据字典技术对编程语言的数据结构进行定义,数据字典分为用户数据字典、表或视图数据字典,以及字段数据字典三类,三类数据字典生成后以文件的形式存储,数据字典文件分为两部分:文件头和数据字典内容,三类数据字典的文件头的格式相同,数据字典文件头包括文件名、文件长度、记录个数、单个记录的长度,校验码和记录起始位置的偏移量,三类数据字典文件内容包括:
(a)用户数据字典:包括用户名、用户ID和用户下的表或视图数目;
(b)表或视图数据字典:包括表名或视图名、用户的ID、表ID或视图ID、表或视图的字段数目、表的主键字段数目和表的主键字段的索引;
(c)字段数据字典:包括字段名、用户ID、表或视图ID、字段ID、字段类型和字段长度;
其中,数据字典中的字段类型是与数据库字段类型对应的编程语言中的类型,数据库字段类型中的整数对应编程语言的整数、浮点数对应编程语言的浮点数、字符串对应编程语言的字符数组、时间对应编程语言的时间结构体、二进制大字段对应编程语言的由一个长度字段和一个指针组成的结构体,字段数据字典中的字段长度为编程语言中的数据类型长度;
当数据库结构变化时,通过更新数据字典和编程语言的数据结构实现数据库与编程语言数据结构的重新适配;
所述数据库表与编程语言数据结构的对象化包括如下步骤:
步骤1-1,根据数据库的数据目录提取数据库的用户数据字典;
步骤1-2,根据数据库的数据目录提取数据库的表或视图数据字典,并将其与用户数据字典关联;
步骤1-3,根据数据库的数据目录提取数据库的字段数据字典,并将其与表或视图数据字典关联;
步骤1-4,根据数据库的表或视图数据字典和字段数据字典,以及数据库字段类型与编程语言数据类型的对应关系,生成与数据库对象对应的编程语言数据结构,根据生成的编程语言数据结构构造编程语言数据对象;
所述编程语言的数据结构定义与数据库字段定义顺序相同,且设置字节对齐方式为单字节对齐,并将编程语言数据对象根据数据字典编码成统一的数据库访问请求;
所述数据库访问请求自动适配对象包括如下步骤:
步骤2-1,根据编程语言数据对象构建数据库访问请求;
步骤2-2,根据数据库访问请求中的数据库用户名、表名或视图名查询数据字典;
步骤2-3,获取到指定用户、指定表或视图以及表或视图所有字段的数据字典;
步骤2-4,根据数据字典编码编程语言数据对象,使数据库访问请求泛化;
步骤2-5,使用统一接口处理泛化后的数据库访问请求,根据数据字典将编程语言数据对象还原,获取到编程语言数据对象每个成员的值;
步骤2-6,将还原后的编程语言数据对象的数据成员与数据库表的字段适配;
步骤2-7,构造数据库方法访问数据库;
所述数据库查询结果自动适配对象包括如下步骤:
步骤3-1,查询数据字典;
步骤3-2,获取到数据字典;
步骤3-3,根据数据字典获取查询结果输出对象的数据结构;
步骤3-4,逐个查询数据库的字段值;
步骤3-5,根据建立的数据库表或视图的字段与编程语言数据结构成员的对象化关系自动适配。
CN201510258143.7A 2015-05-19 2015-05-19 一种通用数据库访问中自动适配对象的方法 Active CN104915383B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510258143.7A CN104915383B (zh) 2015-05-19 2015-05-19 一种通用数据库访问中自动适配对象的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510258143.7A CN104915383B (zh) 2015-05-19 2015-05-19 一种通用数据库访问中自动适配对象的方法

Publications (2)

Publication Number Publication Date
CN104915383A CN104915383A (zh) 2015-09-16
CN104915383B true CN104915383B (zh) 2018-03-02

Family

ID=54084446

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510258143.7A Active CN104915383B (zh) 2015-05-19 2015-05-19 一种通用数据库访问中自动适配对象的方法

Country Status (1)

Country Link
CN (1) CN104915383B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829336B1 (en) 2021-09-16 2023-11-28 Wells Fargo Bank, N.A. Systems and methods for automated data dictionary generation and validation

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107203525B (zh) * 2016-03-16 2020-03-06 北大方正集团有限公司 数据库的处理方法和装置
CN107220327A (zh) * 2017-05-22 2017-09-29 千寻位置网络有限公司 基于MongoDB的数据查询方法及系统、服务终端、存储器
CN109660577B (zh) * 2017-10-10 2020-10-16 中国移动通信有限公司研究院 信息传输方法、通信设备及计算机可读存储介质
CN108153808A (zh) * 2017-11-22 2018-06-12 链家网(北京)科技有限公司 大数据数据仓库数据访问方法及装置
CN109086445A (zh) * 2018-08-17 2018-12-25 广西电网有限责任公司 一种信息系统数据结构管控平台、方法及系统
CN109802957B (zh) * 2019-01-03 2022-05-31 深圳壹账通智能科技有限公司 接口对接方法、装置、计算机设备和存储介质
CN110059153B (zh) * 2019-03-29 2023-09-26 中国人民解放军63791部队 一种用于实时数据处理系统的数据交换方法
CN111190917B (zh) * 2019-06-10 2024-08-06 腾讯科技(深圳)有限公司 一种数据处理方法及装置
CN110990412B (zh) * 2019-12-25 2023-09-19 中国银行股份有限公司 数据结构设计方法和装置
CN113378517A (zh) * 2021-06-17 2021-09-10 中国工商银行股份有限公司 数据字典生成方法、装置、电子设备和存储介质
CN113505129A (zh) * 2021-07-07 2021-10-15 深圳市汉云科技有限公司 一种基于字典的数据库查询优化方法、装置及终端设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5566333A (en) * 1992-11-05 1996-10-15 Trace Technologies, Inc. Relational database information management system for facilitating normalization of a relational database
US7536407B2 (en) * 2004-07-08 2009-05-19 International Business Machines Corporation Managing entity-relationship data for data objects persisted in a relational database
CN101697120A (zh) * 2009-11-05 2010-04-21 河南辉煌科技股份有限公司 基于关系型数据库的j2ee代码生成方法
CN102110111A (zh) * 2009-12-29 2011-06-29 北京大学 数据库操作命令的处理方法及装置
CN102346774A (zh) * 2011-09-26 2012-02-08 深圳市信游天下网络科技有限公司 一种数据库操作方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5566333A (en) * 1992-11-05 1996-10-15 Trace Technologies, Inc. Relational database information management system for facilitating normalization of a relational database
US7536407B2 (en) * 2004-07-08 2009-05-19 International Business Machines Corporation Managing entity-relationship data for data objects persisted in a relational database
CN101697120A (zh) * 2009-11-05 2010-04-21 河南辉煌科技股份有限公司 基于关系型数据库的j2ee代码生成方法
CN102110111A (zh) * 2009-12-29 2011-06-29 北京大学 数据库操作命令的处理方法及装置
CN102346774A (zh) * 2011-09-26 2012-02-08 深圳市信游天下网络科技有限公司 一种数据库操作方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829336B1 (en) 2021-09-16 2023-11-28 Wells Fargo Bank, N.A. Systems and methods for automated data dictionary generation and validation

Also Published As

Publication number Publication date
CN104915383A (zh) 2015-09-16

Similar Documents

Publication Publication Date Title
CN104915383B (zh) 一种通用数据库访问中自动适配对象的方法
CN105868411B (zh) 一种非关系型与关系型数据库一体化数据查询方法与系统
US8612468B2 (en) System and method for retrieving data from a relational database management system
CN103902698B (zh) 一种数据存储系统和存储方法
US8255398B2 (en) Compression of sorted value indexes using common prefixes
JP4856627B2 (ja) 部分的クエリーキャッシング
CN103488704B (zh) 一种数据存储方法及装置
US20100114843A1 (en) Index Compression In Databases
WO2017059798A1 (zh) 序列化与反序列化的方法、装置、系统以及电子设备
CN103593440B (zh) 日志文件的读写方法及装置
CN103838837B (zh) 基于语义模板的遥感元数据集成方法
CN100595764C (zh) 利用连接表压缩数据图的方法和设备
CN111190904A (zh) 一种图-关系数据库混合存储的方法和装置
US9940353B2 (en) Relationship serialization and reconstruction for entities
WO2015139381A1 (zh) 一种终端软件升级方法及装置
JP7105982B2 (ja) 構造化レコード取得
CN1592908B (zh) 具有异种对象类型的数据库系统
CN108388613B (zh) 一种缓存数据的更新方法
CN104008134B (zh) 基于HBase的高效存储方法及系统
CN103365992A (zh) 一种基于一维线性空间实现Trie树的词典检索方法
CN103365991A (zh) 一种基于一维线性空间实现Trie树的词典存储管理方法
US8493249B2 (en) Compression match enumeration
CN104166705A (zh) 数据库的访问方法及装置
CN105095457B (zh) 历史数据存储管理方法
CN107273443B (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
GR01 Patent grant
GR01 Patent grant