CN108228604B - 基于内存对象的模型构建方法、信息查询方法及装置 - Google Patents
基于内存对象的模型构建方法、信息查询方法及装置 Download PDFInfo
- Publication number
- CN108228604B CN108228604B CN201611153695.2A CN201611153695A CN108228604B CN 108228604 B CN108228604 B CN 108228604B CN 201611153695 A CN201611153695 A CN 201611153695A CN 108228604 B CN108228604 B CN 108228604B
- Authority
- CN
- China
- Prior art keywords
- information
- target
- database
- query
- column
- 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
Links
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Abstract
本发明公开了一种基于内存对象的模型构建方法、信息查询方法及装置,基于关系型数据库的模型对内存对象进行抽象,获得数据库模型的数据库框架,其包括数据库对象、与数据库对象关联的表对象、与表对象关联的列对象;为数据库模型创建目标文件,目标文件用于当进行SQL查询时,建立与数据库模型的连接,生成数据库模型的实体;为数据库对象配置第一查询方式信息,第一查询方式信息用于查询目标表对象信息,目标表对象信息为目标信息所在表的表对象的信息;为表对象配置第二查询方式信息,第二查询方式信息用于基于与目标信息所在表的表对象关联的列对象的信息,在与目标表对象信息对应的表中查询目标信息。本发明可实现对内存对象的SQL查询。
Description
技术领域
本发明涉及数据查询技术领域,尤其涉及一种基于内存对象的模型构建方法、信息查询方法及装置。
背景技术
结构化查询语言(Structured Query Language),简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。即,SQL可用来查询和操作结构化数据。
目前,存在一些不需要将数据持久化到数据库中的业务场景,例如,在一些业务场景中,希望可以直接在内存中查询和操作数据。基于SQL的广泛应用以及上述业务场景,亟需提供一种解决方案,能够实现利用SQL直接在内存中进行数据操作,从而方便使用者使用SQL对重要的业务数据进行处理而不受限于使用方式。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的技术方案:
一种基于内存对象的模型构建方法,所述方法包括:
基于关系型数据库的模型对内存对象进行抽象,获得数据库模型的数据库框架,所述数据库框架包括数据库对象、与所述数据库对象关联的表对象,以及与所述表对象关联的列对象;
为所述数据库模型创建目标文件,所述目标文件用于当进行SQL查询时,建立与所述数据库模型的连接,并生成所述数据库模型的实体;
为所述数据库框架中的所述数据库对象配置第一查询方式信息,所述第一查询方式信息用于查询目标表对象信息,所述目标表对象信息为目标信息所在的表的表对象的信息,所述目标信息为所述SQL的待查询信息;
为所述数据库框架中的所述表对象配置第二查询方式信息,获得数据库模型,所述第二查询方式信息用于基于与所述目标信息所在表的表对象关联的列对象的信息,在与所述目标表对象信息对应的表中查询出所述目标信息。
其中,所述数据库对象包括至少一个表的属性信息,所述与所述数据库对象关联的表对象包括表的属性信息、表中列的属性信息以及与各个列的属性信息对应的数据内容信息,所述列对象包括列的属性信息和列的类型信息。
一种信息查询方法,所述信息查询方法用于基于上述方法创建的数据库模型实现利用SQL语言查询内存对象,所述信息查询方法包括:
当利用SQL查询语句查询目标信息时,利用为所述数据库模型创建的目标文件建立与所述数据库模型的连接,并通过所述目标文件生成所述数据库模型的数据库模型实体;
基于所述SQL查询语句中的待查询对象,利用第一查询方式信息查询所述数据库模型实体,获得目标表对象信息,所述目标表对象信息为所述目标信息所在表的表对象的信息;
基于所述SQL查询语句中的待查询对象,利用第二查询方式信息基于与所述目标信息所在表的表对象关联的列对象的信息,在与所述目标表对象信息对应的表中查询,获得所述目标信息。
所述的对数据库模型进行信息查询的方法还包括:
基于所述SQL查询语句中的待查询对象,利用所述目标表对象信息和与所述目标信息所在表的表对象关联的列对象的信息校验所述SQL查询语句的合法性。
其中,所述待查询对象包括待查询列信息,所述与所述目标信息所在表的表对象关联的列对象的信息包括列类型信息;
所述基于与所述目标信息所在表的表对象关联的列对象的信息,在与所述目标表对象信息对应的表中查询,获得所述目标信息,包括:
基于与所述目标信息所在表的表对象关联的列对象所包括的列类型信息,将与所述目标表对象信息对应的表中列的数据类型信息转换为SQL语言中对应的数据类型;
在与所述目标表对象信息对应的表中查询到所述待查询列信息;
从与所述目标表对象信息对应的表中获取与所述待查询列信息对应的数据内容作为所述目标信息。
一种基于内存对象的模型构建装置,所述装置包括:抽象单元、创建单元、第一配置单元和第二配置单元;
所述抽象单元,用于基于关系型数据库的模型对内存对象进行抽象,获得数据库模型的数据库框架,所述数据库框架包括数据库对象、与所述数据库对象关联的表对象,以及与所述表对象关联的列对象;
所述创建单元,用于为所述数据库模型创建目标文件,所述目标文件用于当进行SQL查询时,建立与所述数据库模型的连接,并生成所述数据库模型的实体;
所述第一配置单元,用于为所述数据库框架中的所述数据库对象配置第一查询方式信息,所述第一查询方式信息用于查询目标表对象信息,所述目标表对象信息为目标信息所在表的表对象的信息,所述目标信息为所述SQL的待查询信息;
所述第二配置单元,用于为所述数据库框架中的所述表对象配置第二查询方式信息,获得数据库模型,所述第二查询方式信息用于基于与所述目标信息所在表的表对象关联的列对象的信息,在与所述目标表对象信息对应的表中查询出所述目标信息。
其中,所述数据库对象包括至少一个表的属性信息,所述数据库对象包括至少一个表的属性信息,所述与所述数据库对象关联的表对象包括表的属性信息、表中列的属性信息以及与各个列的属性信息对应的数据内容信息,所述列对象包括列的属性信息和列的类型信息。
一种信息查询装置,所述信息查询装置用于基于上述的装置创建的数据库模型实现利用SQL语言查询内存对象,所述信息查询装置包括:连接建立单元、模型实体生成单元、第一查询单元和第二查询单元;
所述连接建立单元,用于当利用SQL查询语句查询目标信息时,利用为所述数据库模型创建的目标文件建立与所述数据库模型的连接;
所述模型实体生成单元,用于利用所述目标文件生成所述数据库模型的数据库模型实体;
所述第一查询单元,用于基于所述SQL查询语句中的待查询对象,利用第一查询方式信息查询所述数据库模型实体,获得目标表对象信息,所述目标表对象信息为所述目标信息所在表的表对象的信息;
所述第二查询单元,用于基于所述SQL查询语句中的待查询对象,利用第二查询方式信息,基于与所述目标信息所在表的表对象关联的列对象的信息,在与所述目标表对象信息对应的表中查询,获得所述目标信息。
所述的对数据库模型进行信息查询的装置还包括:校验单元;
所述校验单元,用于基于所述SQL查询语句中的待查询对象,利用所述目标表对象信息和与所述目标信息所在表的表对象关联的列对象的信息校验所述SQL查询语句的合法性。
其中,所述待查询对象包括待查询列信息,所述与所述目标信息所在表的表对象关联的列对象的信息包括列类型信息;
所述第二查询单元包括:类型转换子单元、查询子单元和信息获取子单元;
所述类型转换子单元,用于基于与所述目标信息所在表的表对象关联的列对象所包括的列类型信息,将与所述目标表对象信息对应的表中列的数据类型信息转换为SQL语言中对应的数据类型;
所述查询子单元,用于在与所述目标表对象信息对应的表中查询到所述待查询列信息;
所述信息获取子单元,用于从与所述目标表对象信息对应的表中获取与所述待查询列信息对应的数据内容作为所述目标信息。
借由上述技术方案,本发明提供的基于内存对象的模型构建方法、信息查询方法及装置,可基于关系型数据库的模型将内存对象抽象成数据库模型的数据库框架,并创建用于建立与数据库模型连接并将数据库模型生成模型实体的目标文件,为了实现SQL查询,进一步为数据库框架配置数据查询方式信息,获得数据库模型,当利用SQL查询语句查询目标信息时,利用为数据库模型创建的目标文件建立与数据库模型的连接,并利用目标文件生成数据库模型的数据库模型实体;基于SQL查询语句中的待查询对象,利用第一查询方式信息查询数据库模型实体,获得目标表对象信息(目标信息所在表的表对象的信息),利用第二查询方式信息基于与目标信息所在表的表对象关联的列对象的信息,在与目标表对象信息对应的表中查询,获得目标信息。通过本发明提供的基于内存对象的模型构建方法、信息查询方法及装置,可实现对内存中对象的SQL查询,即,对于一些不需要将数据对象持久化到数据库中的业务场景而言,本发明使得用户利用SQL查询语句可直接从内存中查询一些需要的数据对象。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的基于内存对象的模型构建方法的流程示意图;
图2示出了本发明实施例提供的基于内存对象的模型构建方法中,基于关系型数据库的模型对进行内存对象进行抽象,获得的数据库模型的数据库框架的示意图;
图3示出了本发明实施例提供的信息查询方法的流程示意图;
图4示出了本发明实施例提供的基于内存对象的模型构建装置的结构示意图;
图5示出了本发明实施例提供的信息查询装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种基于内存对象的模型构建方法,请参阅图1,示出了该方法的流程示意图,可以包括:
步骤S101:基于关系型数据库的模型对内存对象进行抽象,获得数据库模型的数据库框架。
其中,数据库框架包括数据库对象、与数据库对象关联的表对象,以及与表对象关联的列对象。请参阅图2,示出了基于关系型数据库的模型对内存对象进行抽象,获得的数据库模型的数据库框架的示意图,从图中可以看出数据库对象包括至少一个表的属性信息如表名,与数据库对象关联的表对象包括表的属性信息如表名、表中列的属性信息如列名以及与各个列的属性信息对应的数据内容信息,列对象包括列的属性信息如列名和列的类型信息。
关系型数据库中的一个数据库包含一张表或者多张表,每张表又以行列的形式存在,每张表中的每一列包含了特定的数据类型,每一行存储了详细的数据信息。为了实现SQL查询,本发明实施例将内存对象按上述关系型数据库的结构进行抽象,首先抽象出具有关系型数据库结构的数据库框架。
步骤S102:为数据库模型创建目标文件,目标文件用于当进行SQL查询时,建立与数据库模型的连接,并生成数据库模型的实体。
可以理解的是,在访问数据库时,首选需要获得访问数据库的接口,在本实施例中,获得访问数据库的接口的过程即为建立与数据库模型的连接的过程。
在一具体实例中,目标文件可以为JSON(JavaScript Object Notation)文件,当利用SQL查询时,首先需要建立JDBC连接,而JSON文件即提供了建立JDBC连接所需要的信息。创建JSON文件时为后续进行JSQL查询时建立JDBC连接做准备。
另外,本实施例的步骤S101仅是对内存对象的抽象,为了实现后续的查询操作,在建立JDBC连接的时候还需通过JSON文件中定义的factory生成数据库模型实体。
由此可见,创建JSON文件的作用包括两个,其一,在进行SQL查询时,利用建立JDBC连接所需要的信息建立JDBC连接,其二,利用JSON文件中定义的factory生成数据库模型的实体。
步骤S103:为数据库框架中的数据库对象配置第一查询方式信息,其中,第一查询方式信息用于查询目标表对象信息。
其中,目标表对象信息为目标信息所在表的表对象的信息,目标信息为SQL的待查询信息。目标表对象信息可以包括目标信息所在的表的表对象的表名、表中列的列名。
在一种可能的实现方式中,为了方便的存储和定位,可利用Map存储数据库模型,Map是一种键值对的存储容器,可将数据库模型的名字作为Map的键key,数据库模型中的数据库对象作为Map的值value,这种结构使得,在进行操作时能够很方便的通过key获取到value。需要说明的是,Map可只用来存储所有的数据库对象的信息,由于数据库对象与表对象关联,表对象又与列对象关联,因此,通过数据库对象能够获取到表对象的信息,进而通过表对象的信息又能获取到列对象的信息。
具体的,第一查询方式信息用于在进行SQL查询时,基于SQL查询语句中的待查询对象和MAP中的数据库对象可查询到目标信息所在表的表对象的信息(如目标信息所在表的表名、列名)。
步骤S104:为数据库框架中的表对象配置第二查询方式信息,获得数据库模型。
其中,第二查询方式信息用于基于与目标信息所在表的表对象关联的列对象的信息,在与目标表对象信息对应的表中查询出目标信息。
本发明实施例提供的基于内存对象的模型构建方法,可基于关系型数据库的模型将内存对象抽象成数据库模型的数据库框架,并创建用于建立与数据库模型连接并将数据库模型生成模型实体的目标文件,为了实现SQL查询,进一步为数据库框架配置数据查询方式信息。通过本发明实施例创建的数据库模型,可实现对内存中对象的SQL查询,即,对于一些不需要将数据对象持久化到数据库中的业务场景而言,本发明实施例使得用户利用SQL查询语句可直接从内存中查询一些需要的数据对象。
本发明实施例还提供了一种信息查询方法,该信息查询方法用于基于上述方法创建的数据库模型实现利用SQL语言查询内存对象,请参阅图3,示出了该信息查询方法的流程示意图,可以包括:
步骤S301:当利用SQL查询语句查询目标信息时,利用为数据库模型创建的目标文件建立与数据库模型的连接,并通过目标文件生成数据库模型的数据库模型实体。
在一具体实例中,目标文件可以为JSON文件,JSON文件提供了建立JDBC连接所需要的信息,当利用SQL查询时,首先利用JSON文件中用于建立JDBC连接所需要的信息建立JDBC连接。JSON文件中除了包括建立JDBC连接所需要的信息外,还提供了factory信息,在建立JDBC连接的时候还需通过JSON文件中的factory信息生成数据库模型实体。
步骤S302:基于SQL查询语句中的待查询对象,利用第一查询方式信息查询数据库模型实体,获得目标表对象信息。
其中,目标表对象信息为目标信息所在表的表对象的信息。
步骤S303:基于SQL查询语句中的待查询对象,利用第二查询方式信息,基于与目标信息所在表的表对象关联的列对象的信息,在与目标表对象信息对应的表中查询,获得目标信息。
具体的,待查询对象包括待查询列信息,与目标信息所在表的表对象关联的列对象的信息包括列类型信息,则基于SQL查询语句中的待查询对象,利用第二查询方式信息,基于与目标信息所在表的表对象关联的列对象的信息,在与目标表对象信息对应的表中查询,获得目标信息的过程可以包括:基于与目标信息所在表的表对象关联的列对象所包含的列类型信息,将与目标表对象信息对应的表中,列的数据类型信息转换为SQL语言中对应的数据类型;在与目标表对象信息对应的表中查询待查询列信息;从与目标表对象信息对应的表中获取与待查询列信息对应的数据内容作为目标信息。
示例性的,数据库表A定义了两个字段列Colunm分别为a和b,其中,a的数据类型是varchar,b的类型是int,在进行SQL查询时,需要将a和b的数据类型分别转换成Java语言的Stirng和Integer类型,与SQL语言的varchar和int类型相对应。
示例性的,如表1所示,数据库表A包括两条数据记录,两个字段列a和列b,字段列a的数据内容为“Hello”和“Word”,字段列b的数据内容为“10”和“99”:
表1
a | b |
Hello | 10 |
Word | 99 |
假设SQL查询语句中待查询列信息为“a”和“b”,则首先从数据库表A中查询到列“a”和列“b”,然后从数据库表A中获得列“a”的数据内容“Hello”和“Word”,以及列“b”的数据内容“10”和“99”,“Hello”、“Word”、“10”和“99”即为SQL查询语句的查询结果。
本发明实施例提供的对数据库模型进行信息查询的方法,在基于SQL查询语句中的待查询对象,利用第一查询方式信息查询数据库模型实体之前,还可以包括:基于SQL查询语句中的待查询对象,利用目标表对象信息和与目标信息所在表的表对象关联的列对象的信息校验SQL查询语句的合法性。经过校验,如果SQL查询语句合法,则进一步执行查询操作,如果不合法,则返回SQL查询语句不合法的指示信息。
由于目标表对象信息包括了表的名称、表中所包含的列名、与目标信息所在表的表对象关联的列对象的信息包括了列的数据类型等信息,因此,基于目标表对象信息和与目标信息所在表的表对象关联的列对象的信息可校验SQL查询语句的合法性,例如,校验SQL查询语句中是否包含了表中并不包含的列、校验列的数据类型等。示例性的,有一张数据库表A,其定义了a、b和c三个列字段,用户写了一条SQL查询语句进行执行,假设SQL查询语句为:select a,b,d from A,即从数据库表A中获取a、b、d三个列字段的数据内容,由于SQL查询语句中包含了数据库表A中不包含的列字段d,因此,其是不合法的,无法执行,即SQL查询语句不合法。
本发明实施例提供的信息查询方法,当利用SQL查询语句查询目标信息时,利用为数据库模型创建的目标文件建立与数据库模型的连接,并利用目标文件生成数据库模型的数据库模型实体,基于SQL查询语句中的待查询对象,利用第一查询方式信息查询数据库模型实体,获得目标表对象信息(目标信息所在表的表对象的信息),进一步基于SQL查询语句中的待查询对象,利用第二查询方式信息,基于与目标信息所在表的表对象关联的列对象的信息,在与目标表对象信息对应的表中查询,获得目标信息,由此可见,本发明实施例提供的信息查询方法可利用基于内存对象和关系型数据库的模型构建的数据库模型实现对内存对象的访问,即,对于一些不需要将数据对象持久化到数据库中的业务场景而言,本发明实施例使得用户利用SQL查询语句可直接从内存中查询一些需要的数据对象。
与上述方法相对应,本发明实施例提供了一种基于内存对象的模型构建装置,请参阅图4,示出了该装置的结构示意图,该装置可以包括:抽象单元401、创建单元402、第一配置单元403和第二配置单元404。其中:
抽象单元401,用于基于关系型数据库的模型对内存对象进行抽象,获得数据库模型的数据库框架,数据库框架包括数据库对象、与数据库对象关联的表对象,以及与表对象关联的列对象。
其中,数据库对象包括至少一个表的属性信息如表名,与数据库对象关联的表对象包括表的属性信息如表名、表中列的属性信息如列名以及与各个列的属性信息对应的数据内容信息,列对象包括列的属性信息如列名和列的类型信息。
创建单元402,用于为数据库模型创建目标文件,目标文件用于当进行SQL查询时,建立与数据库模型的连接,并生成数据库模型的实体。
第一配置单元403,用于为数据库框架中的数据库对象配置第一查询方式信息。
其中,第一查询方式信息用于查询目标表对象信息,目标表对象信息为目标信息所在的表的表对象的信息,目标信息为SQL的待查询信息。
第二配置单元404,用于为数据库框架中的表对象配置第二查询方式信息,获得数据库模型,第二查询方式信息用于基于与目标信息所在表的表对象关联的列对象的信息,在与目标表对象信息对应的表中查询出目标信息。
本发明实施例提供的基于内存对象的模型构建装置,可基于关系型数据库的模型将内存对象抽象成数据库模型的数据库框架,并创建用于建立与数据库模型连接并将数据库模型生成模型实体的目标文件,为了实现SQL查询,进一步为数据库框架配置数据查询方式信息。通过本发明实施例提供的装置所创建的数据库模型,可实现对内存中对象的SQL查询,即,对于一些不需要将数据对象持久化到数据库中的业务场景而言,本发明实施例使得用户利用SQL查询语句可直接从内存中查询一些需要的数据对象。
本发明实施例还提供了一种信息查询装置,该信息查询装置用于基于上述的基于内存对象的模型构建装置创建的数据库模型实现利用SQL语言查询内存对象,该信息查询装置可以包括:连接建立单元501、模型实体生成单元502、第一查询单元503和第二查询单元504。其中:
连接建立单元501,用于当利用SQL查询语句查询目标信息时,利用为数据库模型创建的目标文件建立与数据库模型的连接。
模型实体生成单元502,用于通过目标文件生成数据库模型的数据库模型实体。
第一查询单元503,用于基于SQL查询语句中的待查询对象,利用第一查询方式信息查询数据库模型实体,获得目标表对象信息,其中,目标表对象信息为目标信息所在表的表对象的信息。
第二查询单元504,用于基于SQL查询语句中的待查询对象,利用第二查询方式信息,基于与目标信息所在的表的表对象关联的列对象的信息,在与目标表对象信息对应的表中查询,获得目标信息。
本发明实施例提供的信息查询装置,当利用SQL查询语句查询目标信息时,能够利用为数据库模型创建的目标文件建立与数据库模型的连接,并利用目标文件生成数据库模型的数据库模型实体,基于SQL查询语句中的待查询对象,利用第一查询方式信息查询数据库模型实体,获得目标表对象信息(目标信息所在表的表对象的信息),进一步基于SQL查询语句中的待查询对象,利用第二查询方式信息基于与目标信息所在的表的表对象关联的列对象的信息,在与目标表对象信息对应的表中查询,获得目标信息,由此可见,本发明实施例提供的信息查询装置可利用基于内存对象和关系型数据库的模型构建的数据库模型实现对内存对象的访问,即,对于一些不需要将数据对象持久化到数据库中的业务场景而言,本发明实施例使得用户利用SQL查询语句可直接从内存中查询一些需要的数据对象。
上述实施例提供的信息查询装置,还可以包括:校验单元。
校验单元,用于基于SQL查询语句中的待查询对象,利用目标表对象信息和与目标信息所在表的表对象关联的列对象的信息校验SQL查询语句的合法性。
在上述实施例中,待查询对象包括待查询列信息,与目标信息所在表的表对象关联的列对象的信息包括列类型信息。
第二查询单元包括:类型转换子单元、查询子单元和信息获取子单元。
类型转换子单元,用于基于与目标信息所在表的表对象关联的列对象所包括的列类型信息,将与目标表对象信息对应的表中列的数据类型信息转换为SQL语言中对应的数据类型。
查询子单元,用于在与目标表对象信息对应的表中查询到待查询列信息。
信息获取子单元,用于从与目标表对象信息对应的表中获取与待查询列信息对应的数据内容作为目标信息。
所述基于内存对象的模型构建装置包括处理器和存储器,上述抽象单元、创建单元、第一配置单元和第二配置单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现利用SQL语句查询内存对象。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供的基于内存对象的模型构建装置,可基于关系型数据库的模型将内存对象抽象成数据库模型的数据库框架,并创建用于建立与数据库模型连接并将数据库模型生成模型实体的目标文件,为了实现SQL查询,进一步为数据库框架配置数据查询方式信息。通过本发明实施例提供的装置所创建的数据库模型,可实现对内存中对象的SQL查询,即,对于一些不需要将数据对象持久化到数据库中的业务场景而言,本发明实施例使得用户利用SQL查询语句可直接从内存中查询一些需要的数据对象。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:基于关系型数据库的模型对内存对象进行抽象,获得数据库模型的数据库框架,所述数据库框架包括数据库对象、与所述数据库对象关联的表对象,以及与所述表对象关联的列对象;为所述数据库模型创建目标文件,所述目标文件用于当进行SQL查询时,建立与所述数据库模型的连接,并生成所述数据库模型的实体;为所述数据库框架中的所述数据库对象配置第一查询方式信息,所述第一查询方式信息用于查询目标表对象信息,所述目标表对象信息为目标信息所在表的表对象的信息,所述目标信息为所述SQL的待查询信息;为所述数据库框架中的所述表对象配置第二查询方式信息,获得数据库模型,所述第二查询方式信息用于基于与目标信息所在表的表对象关联的列对象的信息,在与目标表对象信息对应的表中查询出目标信息。
所述信息查询装置包括处理器和存储器,上述连接建立单元、模型实体生成单元、第一查询单元和第二查询单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现利用SQL语句查询内存对象。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供的信息查询装置,当利用SQL查询语句查询目标信息时,能够利用为数据库模型创建的目标文件建立与数据库模型的连接,并利用目标文件生成数据库模型的数据库模型实体,基于SQL查询语句中的待查询对象,利用第一查询方式信息查询数据库模型实体,获得目标表对象信息(目标表对象信息为目标信息所在表的表对象的信息),进一步基于SQL查询语句中的待查询对象,利用第二查询方式信息基于与目标信息所在表的表对象关联的列对象的信息,在与目标表对象信息对应的表中查询,获得目标信息,由此可见,本发明实施例提供的信息查询装置可利用基于内存对象和关系型数据库的模型构建的数据库模型实现对内存对象的访问,即,对于一些不需要将数据对象持久化到数据库中的业务场景而言,本发明实施例使得用户利用SQL查询语句可直接从内存中查询一些需要的数据对象。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:当利用SQL查询语句查询目标信息时,利用为所述数据库模型创建的目标文件建立与所述数据库模型的连接,并利用所述目标文件生成所述数据库模型的数据库模型实体;基于所述SQL查询语句中的待查询对象,利用第一查询方式信息查询所述数据库模型实体,获得目标表对象信息,所述目标表对象信息为目标信息所在表的表对象的信息;基于所述SQL查询语句中的待查询对象,利用第二查询方式信息,基于与目标信息所在表的表对象关联的列对象的信息,在与所述目标表对象信息对应的表中查询,获得所述目标信息。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种基于内存对象的模型构建方法,其特征在于,所述方法包括:
基于关系型数据库的模型对内存对象进行抽象,获得数据库模型的数据库框架,所述数据库框架包括数据库对象、与所述数据库对象关联的表对象,以及与所述表对象关联的列对象;
为所述数据库模型创建目标文件,所述目标文件用于当进行SQL查询时,建立与所述数据库模型的连接,并生成所述数据库模型的实体,所述目标文件具体为JSON文件,所述JSON文件包括建立与所述数据库模型的连接所需的信息以及用于生成所述数据库模型的实体的factory信息;
为所述数据库框架中的所述数据库对象配置第一查询方式信息,所述第一查询方式信息用于查询目标表对象信息,所述目标表对象信息为目标信息所在表的表对象的信息,所述目标信息为所述SQL的待查询信息;
为所述数据库框架中的所述表对象配置第二查询方式信息,获得数据库模型,所述第二查询方式信息用于基于与所述目标信息所在表的表对象关联的列对象的信息,在与所述目标表对象信息对应的表中查询出所述目标信息。
2.根据权利要求1所述的内存对象模型的构建方法,其特征在于,所述数据库对象包括至少一个表的属性信息,所述与所述数据库对象关联的表对象包括表的属性信息、表中列的属性信息以及与各个列的属性信息对应的数据内容信息,所述列对象包括列的属性信息和列的类型信息。
3.一种信息查询方法,其特征在于,所述信息查询方法用于基于如权利要求1或2所述的方法创建的数据库模型实现利用SQL语言查询内存对象,所述信息查询方法包括:
当利用SQL查询语句查询目标信息时,利用为所述数据库模型创建的目标文件建立与所述数据库模型的连接,并通过所述目标文件生成所述数据库模型的数据库模型实体;
基于所述SQL查询语句中的待查询对象,利用第一查询方式信息查询所述数据库模型实体,获得目标表对象信息,所述目标表对象信息为所述目标信息所在表的表对象的信息;
基于所述SQL查询语句中的待查询对象,利用第二查询方式信息基于与所述目标信息所在表的表对象关联的列对象的信息,在与所述目标表对象信息对应的表中查询,获得所述目标信息。
4.根据权利要求3所述的对数据库模型进行信息查询的方法,其特征在于,所述方法还包括:
基于所述SQL查询语句中的待查询对象,利用所述目标表对象信息和所述目标信息所在表的表对象关联的列对象的信息校验所述SQL查询语句的合法性。
5.根据权利要求3或4所述的对数据库模型进行信息查询的方法,其特征在于,所述待查询对象包括待查询列信息,所述与所述目标信息所在表的表对象关联的列对象的信息包括列类型信息;
所述基于与所述目标信息所在表的表对象关联的列对象的信息,在与所述目标表对象信息对应的表中查询,获得所述目标信息,包括:
基于与所述目标信息所在表的表对象关联的列对象所包括的列类型信息,将与所述目标表对象信息对应的表中,列的数据类型信息转换为SQL语言中对应的数据类型;
在与所述目标表对象信息对应的表中查询到所述待查询列信息;
从与所述目标表对象信息对应的表中获取与所述待查询列信息对应的数据内容作为所述目标信息。
6.一种基于内存对象的模型构建装置,其特征在于,所述装置包括:抽象单元、创建单元、第一配置单元和第二配置单元;
所述抽象单元,用于基于关系型数据库的模型对内存对象进行抽象,获得数据库模型的数据库框架,所述数据库框架包括数据库对象、与所述数据库对象关联的表对象,以及与所述表对象关联的列对象;
所述创建单元,用于为所述数据库模型创建目标文件,所述目标文件用于当进行SQL查询时,建立与所述数据库模型的连接,并生成所述数据库模型的实体,所述目标文件具体为JSON文件,所述JSON文件包括建立与所述数据库模型的连接所需的信息以及用于生成所述数据库模型的实体的factory信息;
所述第一配置单元,用于为所述数据库框架中的所述数据库对象配置第一查询方式信息,所述第一查询方式信息用于查询目标表对象信息,所述目标表对象信息为目标信息所在表的表对象的信息,所述目标信息为所述SQL的待查询信息;
所述第二配置单元,用于为所述数据库框架中的所述表对象配置第二查询方式信息,获得数据库模型,所述第二查询方式信息用于基于与所述目标信息所在表的表对象关联的列对象的信息,在与所述目标表对象信息对应的表中查询出所述目标信息。
7.根据权利要求6所述的内存对象模型的构建装置,其特征在于,所述数据库对象包括至少一个表的属性信息,所述与所述数据库对象关联的表对象包括表的属性信息、表中列的属性信息以及与各个列的属性信息对应的数据内容信息,所述列对象包括列的属性信息和列的类型信息。
8.一种信息查询装置,其特征在于,所述信息查询装置用于基于如权利要求6或7所述的装置创建的数据库模型实现利用SQL语言查询内存对象,所述信息查询装置包括:连接建立单元、模型实体生成单元、第一查询单元和第二查询单元;
所述连接建立单元,用于当利用SQL查询语句查询目标信息时,利用为所述数据库模型创建的目标文件建立与所述数据库模型的连接;
所述模型实体生成单元,用于通过所述目标文件生成所述数据库模型的数据库模型实体;
所述第一查询单元,用于基于所述SQL查询语句中的待查询对象,利用第一查询方式信息查询所述数据库模型实体,获得目标表对象信息,所述目标表对象信息为所述目标信息所在表的表对象的信息;
所述第二查询单元,用于基于所述SQL查询语句中的待查询对象,利用第二查询方式信息,基于与所述目标信息所在表的表对象关联的列对象的信息,在与所述目标表对象信息对应的表中查询,获得所述目标信息。
9.根据权利要求8所述的对数据库模型进行信息查询的装置,其特征在于,所述装置还包括:校验单元;
所述校验单元,用于基于所述SQL查询语句中的待查询对象,利用所述目标表对象信息和所述目标信息所在表的表对象关联的列对象的信息校验所述SQL查询语句的合法性。
10.根据权利要求8或9所述的对数据库模型进行信息查询的装置,其特征在于,所述待查询对象包括待查询列信息,所述与所述目标信息所在表的表对象关联的列对象的信息包括列类型信息;
所述第二查询单元包括:类型转换子单元、查询子单元和信息获取子单元;
所述类型转换子单元,用于基于与所述目标信息所在表的表对象关联的列对象所包括的列类型信息,将与所述目标表对象信息对应的表中,列的数据类型信息转换为SQL语言中对应的数据类型;
所述查询子单元,用于在与所述目标表对象信息对应的表中查询到所述待查询列信息;
所述信息获取子单元,用于从与所述目标表对象信息对应的表中获取与所述待查询列信息对应的数据内容作为所述目标信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611153695.2A CN108228604B (zh) | 2016-12-14 | 2016-12-14 | 基于内存对象的模型构建方法、信息查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611153695.2A CN108228604B (zh) | 2016-12-14 | 2016-12-14 | 基于内存对象的模型构建方法、信息查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108228604A CN108228604A (zh) | 2018-06-29 |
CN108228604B true CN108228604B (zh) | 2021-11-23 |
Family
ID=62638935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611153695.2A Active CN108228604B (zh) | 2016-12-14 | 2016-12-14 | 基于内存对象的模型构建方法、信息查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108228604B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966528A (zh) * | 2020-07-13 | 2020-11-20 | 南京璞生电子科技有限公司 | 一种基于flash的微型数据库 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003030031A2 (en) * | 2001-09-28 | 2003-04-10 | Oracle International Corporation | Mechanism for mapping xml schemas to object-relational database systems |
CN101329685A (zh) * | 2008-07-30 | 2008-12-24 | 烽火通信科技股份有限公司 | 一种家庭网关上内存数据库的实现方法 |
CN104298690A (zh) * | 2013-07-19 | 2015-01-21 | 国际商业机器公司 | 为关系数据库表建立索引结构并进行查询的方法和装置 |
-
2016
- 2016-12-14 CN CN201611153695.2A patent/CN108228604B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003030031A2 (en) * | 2001-09-28 | 2003-04-10 | Oracle International Corporation | Mechanism for mapping xml schemas to object-relational database systems |
CN101329685A (zh) * | 2008-07-30 | 2008-12-24 | 烽火通信科技股份有限公司 | 一种家庭网关上内存数据库的实现方法 |
CN104298690A (zh) * | 2013-07-19 | 2015-01-21 | 国际商业机器公司 | 为关系数据库表建立索引结构并进行查询的方法和装置 |
Non-Patent Citations (1)
Title |
---|
基于国产数据库的制造业信息化通用数据平台研究与开发;段希永;《CNKI优秀硕士学位论文全文库》;20060515;第1-5章 * |
Also Published As
Publication number | Publication date |
---|---|
CN108228604A (zh) | 2018-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3353672B1 (en) | Method and apparatus for transferring data between databases | |
CN110413634B (zh) | 数据查询方法、系统、装置及计算机可读存储介质 | |
JP2017520047A (ja) | データクエリ方法及び装置 | |
CN106897342B (zh) | 一种数据校验方法和设备 | |
CN110019111B (zh) | 数据处理方法、装置、存储介质以及处理器 | |
CN112015754A (zh) | 数据查询方法、装置与系统 | |
CN107609011B (zh) | 一种数据库记录的维护方法和装置 | |
CN115599764A (zh) | 一种表格数据的迁移方法、设备及介质 | |
CN108241620B (zh) | 查询脚本的生成方法及装置 | |
CN114297204A (zh) | 一种异构数据源的数据存储、检索方法及装置 | |
CN108228604B (zh) | 基于内存对象的模型构建方法、信息查询方法及装置 | |
CN112541001A (zh) | 数据查询方法、装置、存储介质及设备 | |
CN110019357B (zh) | 数据库查询脚本生成方法及装置 | |
CN108241624B (zh) | 一种查询脚本的生成方法及装置 | |
CN110019497B (zh) | 一种数据读取方法及装置 | |
CN108121733B (zh) | 一种数据的查询方法及装置 | |
CN106407345B (zh) | 一种脏数据更新方法及装置 | |
CN111125087A (zh) | 数据的存储方法及装置 | |
CN110825764A (zh) | 一种sql脚本的生成方法、系统、存储介质和处理器 | |
CN111159192B (zh) | 基于大数据的数据入库方法、装置、存储介质和处理器 | |
CN114490651A (zh) | 数据存储方法及装置 | |
CN110532248B (zh) | 一种基于cmdb的服务器应用信息获取及调整方法 | |
CN112948389A (zh) | 基于md5的数据库表数据比对方法及设备 | |
CN108121719B (zh) | 一种实现数据抽取转换加载etl的方法及装置 | |
CN108073596B (zh) | 一种olap数据库的数据删除方法及装置 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100080 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |