CN104267932B - 数据库操作方法、装置及服务器 - Google Patents
数据库操作方法、装置及服务器 Download PDFInfo
- Publication number
- CN104267932B CN104267932B CN201410395778.7A CN201410395778A CN104267932B CN 104267932 B CN104267932 B CN 104267932B CN 201410395778 A CN201410395778 A CN 201410395778A CN 104267932 B CN104267932 B CN 104267932B
- Authority
- CN
- China
- Prior art keywords
- database
- data
- tables
- api
- script
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000013515 script Methods 0.000 claims abstract description 118
- 238000013507 mapping Methods 0.000 claims abstract description 74
- 230000004048 modification Effects 0.000 claims description 12
- 238000012986 modification Methods 0.000 claims description 12
- 238000011161 development Methods 0.000 abstract description 15
- 230000000694 effects Effects 0.000 abstract description 10
- 230000008878 coupling Effects 0.000 abstract description 6
- 238000010168 coupling process Methods 0.000 abstract description 6
- 238000005859 coupling reaction Methods 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 18
- 230000018109 developmental process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 241000282472 Canis lupus familiaris Species 0.000 description 6
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 3
- 241000282326 Felis catus Species 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000000116 mitigating effect Effects 0.000 description 2
- 230000009469 supplementation Effects 0.000 description 2
- 241000406668 Loxodonta cyclotis Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000008140 language development Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种数据库操作方法、装置及服务器,属于数据库领域。所述方法包括:通过接收应用程序对映射工具中统一API的调用请求;根据预设配置的对应关系确定与该对象对应的数据库,和在该数据库中与该对象对应的数据表;在被调用的统一API所对应的n个数据库脚本中,调用与该数据库对应的数据库脚本对该数据表进行数据操作;解决了操作不同的非关系型数据库需要使用具有很大区别的不同数据库脚本进行数据操作的问题;达到了操作非关系型数据库时不需要了解并编写大量执行脚本,只需要使用统一API就可以实现在不同的非关系型数据库中操作数据的效果,减少了开发工作量,降低了应用程序与非关系型数据库的耦合,提高了开发效率。
Description
技术领域
本发明涉及数据库领域,特别涉及一种数据库操作方法、装置及服务器。
背景技术
非关系型数据库广泛应用于web2.0网站,特别是超大规模和高并发的SNS(SocialNetworking Services,社会性网络服务)类型的web2.0纯动态网站。
非关系型数据库与传统的关系型数据库有很多不同。最重要的一点是,非关系型数据库不使用通用的SQL(Structured Query Language,结构化查询语言)语言作为查询语言,其数据存储不需要固定的表格模式。为此,对不同类型的非关系型数据库进行数据操作时,需要使用与该类型的非关系型数据库相对应的数据库脚本,比如,对A类型的非关系型数据库进行数据操作,则需要使用与A类型的非关系型数据库相对应的数据库脚本A;对B类型的非关系型数据库进行数据操作,则需要使用与B类型的非关系型数据库相对应的数据库脚本B。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
由于非关系型数据库没有统一规范,不同的非关系型数据库需要使用具有很大区别的不同数据库脚本进行数据操作,在开发过程中,需要了解并编写大量的数据库脚本,浪费较多的人力和物力。
发明内容
为了解决在非关系型数据库开发过程中需要了解并编写大量的数据库脚本的问题,本发明实施例提供了一种数据库操作方法、装置及服务器。所述技术方案如下:
第一方面,提供了一种数据库操作方法,所述方法包括:
接收应用程序对映射工具中统一API的调用请求,所述调用请求用于对对象进行数据操作,所述映射工具提供至少一个统一API,每个统一API对应n个数据库脚本,同一个统一API对应的n个数据库脚本具有相同的功能且分别对应一种类型的非关系型数据库;
根据预设配置的对应关系确定与所述对象对应的数据库,和在所述数据库中与所述对象对应的数据表;
在被调用的所述统一API所对应的n个数据库脚本中,调用与所述数据库对应的数据库脚本对所述数据表进行数据操作。
第二方面,提供了一种数据库操作装置,所述装置包括:
第一接收模块,用于接收应用程序对映射工具中统一API的调用请求,所述调用请求用于对对象进行数据操作,所述映射工具提供至少一个统一API,每个统一API对应n个数据库脚本,同一个统一API对应的n个数据库脚本具有相同的功能且分别对应一种类型的非关系型数据库;
关系确定模块,用于根据预设配置的对应关系确定与所述对象对应的数据库和在所述数据库中与所述对象对应的数据表;
脚本调用模块,用于在被调用的所述统一API所对应的n个数据库脚本中,调用与所述数据库对应的数据库脚本对所述数据表进行数据操作。
第三方面,提供了一种服务器,所述服务器包括如上第二方面所述的数据库操作装置。
本发明实施例提供的技术方案带来的有益效果是:
通过接收应用程序对映射工具中统一API的调用请求;根据预设配置的对应关系确定与该对象对应的数据库和在该数据库中与该对象对应的数据表;在被调用的统一API所对应的n个数据库脚本中,调用与该数据库对应的数据库脚本对该数据表进行数据操作;解决了操作不同的非关系型数据库需要使用具有很大区别的不同数据库脚本进行数据操作的问题;达到了操作非关系型数据库时不需要了解并编写大量执行脚本,只需要使用一些简单的统一API就可以实现在不同的非关系型数据库中操作数据的效果,减少了开发工作量,降低了应用程序与非关系型数据库的耦合,提高了开发效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的数据库操作方法所涉及的实施环境的结构示意图;
图2是本发明一个实施例提供的数据库操作方法的方法流程图;
图3是本发明另一个实施例提供的数据库操作方法的方法流程图;
图4是本发明一个实施例提供的数据库操作装置的结构方框图;
图5是本发明另一个实施例提供的数据库操作装置的结构方框图;
图6是本发明一个实施例提供的服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参考图1,其示出了本发明一个实施例提供的数据库操作方法所涉及的实施环境的结构示意图。该实施环境包括应用程序110、运行有映射工具的装置130、至少一个数据库脚本150和至少一个与该数据库脚本150对应的数据库170。
装置130中运行有映射工具,该映射工具预先提供有n个统一API,每个统一API用于实现一种数据操作,数据操作包括:增加、删除、查询和修改等。每个统一API对应的n个数据库脚本,这n个数据库脚本具有相同的功能且分别对应一种类型的非关系型数据库。
应用程序110可以访问运行有映射工具的装置130。应用程序110通过统一API可以调用引映射工具130。
装置130经过初始配置后,可以调用数据库脚本150来对数据库170进行数据操作。数据库170可以是各种非关系型数据库,比如:redis数据库、Memcached数据库和MongoDB数据库。
首先对本发明实施例中涉及的一些名词进行解释:
映射工具:预先整合开发的一个工具包,比如采用java语言开发的jar包。该工具包将各种类型的非关系型数据库的数据库脚本封装为统一API。也即,该映射工具预先提供有n个统一API,每个统一API用于实现一种数据操作,数据操作包括:增加、删除、查询和修改等。每个统一API对应的n个数据库脚本,这n个数据库脚本具有相同的功能且分别对应一种类型的非关系型数据库。
统一API(Application Programming Interface,应用程序编程接口):每个统一API对应n个数据库脚本,同一个统一API对应的n个数据库脚本具有相同的功能且分别对应一种类型的非关系型数据库。统一API包括增加对象API、删除对象API、查询对象API和修改对象API中的至少一种。以表1为例:
对象:是编程领域的一个术语。类和对象用于在编程领域描述各种事物。在面向对象的编程领域中,如果认为“类”定义了事物的属性和它可以做到的(它的行为)。举例来说,“狗”这个类会包含狗的一切基础特征,例如它的孕育、毛皮颜色和吠叫的能力。则对象是类的实例,例如,“狗”这个类列举狗的特点,从而使这个类定义了世界上所有的狗。而莱丝这个对象则是一条具体的狗。每个对象的各种数据在数据库中进行存储时,可能对应一个数据库中的一张数据表、也可能对应一个数据库中的多张数据表、还可能对应不同数据库中的不同数据表。
数据库:本实施例中提到的数据库通常指的是非关系型数据库。非关系型数据库通常以键值对存储,它的结构可以不固定。与关系型数据库不同的是,非关系型数据库不适用SQL语言来作为查询语言。
数据表:是数据库最重要的组成部分之一。数据库只是一个框架,数据表才是其实质内容。如“教学管理***”中,“教学管理”数据库包含分别围绕特定主题的6个数据表:“教师”表、“课程”表、“成绩”表、“学生”表、“班级”表和“授课”表,用来管理教学过程中学生、教师、课程等信息。
对象和数据表之间的对应关系:在应用程序中,通常使用对象来作为数据单位;而在数据库中,通常使用数据表来作为数据单位。每个对象的各种数据在数据库中进行存储时,可能对应一个数据库中的一张数据表、也可能对应一个数据库中的多张数据表、还可能对应不同数据库中的不同数据表。两者之间的对应关系即为对象和数据表之间的对应关系。
请参考图2,其示出了本发明一个实施例提供的数据库操作方法的方法流程图。本实施例以该数据库操作方法应用于图1所示的运行有映射工具的装置中来举例说明。该方法,包括:
步骤202,接收应用程序对映射工具中统一API的调用请求,该调用请求用于对对象进行数据操作,该映射工具提供至少一个统一API,每个统一API对应n个数据库脚本,同一个统一API对应的n个数据库脚本具有相同的功能且分别对应一种类型的非关系型数据库;
步骤204,根据预设配置的对应关系确定与该对象对应的数据库,和在该数据库中与该对象对应的数据表;
该对应关系是对象和数据表之间的对应关系。
步骤206,在被调用的统一API所对应的n个数据库脚本中,调用与该数据库对应的数据库脚本对该数据表进行数据操作。
综上所述,本发明实施例提供的数据库操作方法,通过接收应用程序对映射工具中统一API的调用请求;根据预设配置的对应关系确定与该对象对应的数据库和在该数据库中与该对象对应的数据表;在被调用的统一API所对应的n个数据库脚本中,调用与该数据库对应的数据库脚本对该数据表进行数据操作;解决了操作不同的非关系型数据库需要使用具有很大区别的不同数据库脚本进行数据操作的问题;达到了操作非关系型数据库时不需要了解并编写大量执行脚本,只需要使用统一API就可以实现在不同的非关系型数据库中操作数据的效果,减少了开发工作量,降低了应用程序与非关系型数据库的耦合,提高了开发效率。
请参考图3,其示出了本发明另一个实施例提供的数据库操作方法的方法流程图。本实施例以该数据库操作方法应用于图1所示的运行有映射工具的装置中来举例说明。该方法,包括:
步骤301,接收对映射工具的配置请求;
映射工具在操作数据库时,需要先进行配置,该映射工具接收管理员对其的配置请求。
步骤302,根据配置请求配置各个数据库的连接信息和数据库类型,连接信息包括IP地址、端口、用户名和密码;
其中,配置连接信息用于使映射工具能够访问数据库。连接信息通常都包括数据库的IP地址、端口、用户名和密码。
配置数据库类型用于使映射工具对该数据库进行数据操作时,决策调用哪一种数据库脚本。
在具体实现的过程中,由于开发语言的不同,配置方式也会不同。
作为一种可能的实现方式,本实施例提供了一种常用的XML配置方式进行说明。具体的配置方式可以如表2所示。
表2示出了使用XML配置方式配置非关系型数据库的连接信息的示意。
当然,在实际配置时,可以配置的信息不局限于上述信息。还可以包括:
连接超时、最大等待时间、自动连接重试、套接字保持、套接字超时、写入超时等。
比如,connect-timeout="1000"//连接超时
max-wait-time="1500"//最大等待时间
auto-connect-retry="true"//自动连接重试
socket-keep-alive="true"//套接字保持
socket-timeout="1500"//套接字超时
write-timeout="0"//写入超时
步骤303,根据配置请求配置各个对象与各个数据库中的数据表的对应关系;
不同的对象对应不同的数据表。每个对象在数据库中进行存储时,可能对应一个数据库中的一张数据表、也可能对应一个数据库中的多张数据表、还可能对应不同数据库中的不同数据表。
在上述对应关系中,还包括对象的属性与数据表的表字段之间的对应关系。每个对象可以包括若干个属性,对象的属性可以对应一个数据表中的一个表字段,也可以对应一个数据表的多个表字段,还可以对应不同数据表中的多个表字段。
在具体实现的过程中,由于开发语言的不同,配置方式也会不同。
作为一种可能的实现方式,本实施例提供了一种常用的XML配置方式进行说明。具体的配置方式可以如表3所示。
表3示出了使用XML配置方式配置对象-非关系型数据库中数据表的对应关系的示意。
其中,class name="Cat"表示对象名称是Cat,collection="cats"表示表名是cats,property name="litterId"表示对象属性名是litterId,column="litterId"表示表字段名称是litterId。其中,property name="litterId"和column="litterId"即表示对象属性名为litterId的对象属性是与表字段名为litterId的表字段所对应的。
在经过初始配置之后,应用程序就可以通过映射工具来对不同类型的数据库进行数据操作。具体如下:
步骤304,接收应用程序对映射工具中统一API的调用请求,该调用请求用于对对象进行数据操作,该映射工具提供至少一个统一API,每个统一API对应n个数据库脚本,同一个统一API对应的n个数据库脚本具有相同的功能且分别对应一种类型的非关系型数据库;
映射工具提供的统一API包括但不限于:增加对象API、删除对象API、查询对象API和修改对象API中的至少一种。每种统一API用于实现一种数据操作功能。应用程序可以根据需要调用相应的统一API。
可选的,应用程序需要对对象进行增加操作时,应用程序调用映射工具中的增加对象API,映射工具接收应用程序对增加对象API的调用请求,该增加对象API对应数据库脚本A、数据库脚本B等n个数据库脚本,该增加对象API对应的n个数据库脚本都具有增加数据的功能,且数据库脚本A对应A类型的非关系型数据库,数据库脚本B对应B类型的非关系型数据库,数据库脚本N对应N类型的非关系型数据库。
可选的,应用程序需要对对象进行删除操作时,应用程序调用映射工具中的删除对象API,映射工具接收应用程序对删除对象API的调用请求,该删除对象API对应数据库脚本A、数据库脚本B等n个数据库脚本,该删除对象API对应的n个数据库脚本都具有删除数据的功能,且数据库脚本A对应A类型的非关系型数据库,数据库脚本B对应B类型的非关系型数据库,数据库脚本N对应N类型的非关系型数据库。
可选的,应用程序需要对对象进行查询操作时,应用程序调用映射工具中的查询对象API,映射工具接收应用程序对查询对象API的调用请求,该查询对象API对应数据库脚本A、数据库脚本B等n个数据库脚本,该查询对象API对应的n个数据库脚本都具有查询数据的功能,且数据库脚本A对应A类型的非关系型数据库,数据库脚本B对应B类型的非关系型数据库,数据库脚本N对应N类型的非关系型数据库。
可选的,应用程序需要对对象进行修改操作时,应用程序调用映射工具中的修改对象API,映射工具接收应用程序对修改对象API的调用请求,该修改对象API对应数据库脚本A、数据库脚本B等n个数据库脚本,该修改对象API对应的n个数据库脚本都具有修改数据的功能,且数据库脚本A对应A类型的非关系型数据库,数据库脚本B对应B类型的非关系型数据库,数据库脚本N对应N类型的非关系型数据库。
步骤305,根据预设配置的对应关系查询与该对象对应的数据库,和在该数据库中与该对象对应的数据表;
映射工具根据各个对象与各个数据库中的数据表的对应关系,查询与该对象对应的数据库,和在该数据库中与该对象对应的数据表。
若对象A对应非关系型数据库A中的数据表A1,则映射工具查询与对象A对应的非关系型数据库A,和非关系型数据库A中与对象A对应的数据表A1。
步骤306,获取与该对象对应的数据库的数据库类型;
同时,映射工具还需要获取与该对象对应的数据库的数据库类型。若对象A对应非关系型数据库A,则映射工具获取非关系型数据库A的数据库类型。
步骤307,通过该连接信息与该数据库建立连接;
若对象A对应非关系型数据库A,则映射工具通过非关系型数据库A的连接信息与非关系型数据库A建立连接。
步骤308,在该连接建立后,从被调用的统一API对应的n个数据库脚本中,调用与该数据库类型对应的数据库脚本对该数据表进行数据操作。
在映射工具与非关系型数据库A的连接建立之后,映射工具可以调用与非关系型数据库A对应的数据库脚本对数据表A1进行数据操作。
需要说明的是,步骤307的具体执行时机不进行限制,映射工具可以在需要与非关系型数据库A进行数据操作时,才与非关系型数据库A建立连接;也可以预先与非关系型数据库A建立连接,并一直保持该连接。本发明实施例对此不作限定。
综上所述,本发明实施例提供的数据库操作方法,通过接收应用程序对映射工具中统一API的调用请求;根据预设配置的对应关系确定与该对象对应的数据库和在该数据库中与该对象对应的数据表;在被调用的统一API所对应的n个数据库脚本中,调用与该数据库对应的数据库脚本对该数据表进行数据操作;解决了操作不同的非关系型数据库需要使用具有很大区别的不同数据库脚本进行数据操作的问题;达到了操作非关系型数据库时不需要了解并编写大量执行脚本,只需要使用统一API就可以实现在不同的非关系型数据库中操作数据的效果,减少了开发工作量,降低了应用程序与非关系型数据库的耦合,提高了开发效率。
本发明实施例提供的数据库操作方法,还通过接收对映射工具的配置请求;根据配置请求配置各个数据库的连接信息和数据库类型;根据配置请求配置各个对象与各个数据库中的数据表的对应关系;解决了操作非关系型数据库时判断对象与数据库的对应关系和对象与数据库中数据表的对应关系的问题;达到了能够更方便的查找到与对象对应的数据库和数据表的效果。
显然,应用程序的开发人员只需要了解和学习映射工具中的统一API的调用方法即可,不需要了解和学习各种非关系型数据库的数据库脚本。不仅减轻了应用程序的开发人员的工作量,而且还可以实现直接以对象为数据单位对数据库进行数据操作的效果。与直接操作数据表不同的是,直接以对象为数据单位对数据库进行数据操作,更符合应用程序的编程语言风格,能够提高数据操作的效率和减轻代码的复杂性。
需要补充说明的一点是:步骤305之后,本实施例还包括如下步骤:
一、若与对象对应的数据库尚不存在,则创建该数据库;
也即,作为映射工具的一个功能,当需要操作数据时,若映射工具检测到预先配置的与对象对应的数据库在后端服务器中尚不存在,则映射工具根据与该数据库对应的数据库脚本在后端服务器中创建该数据库。
二、若与对象对应的数据库存在但与该对象对应的数据表不存在,则创建该数据表;
另外,当需要操作数据时,若映射工具检测到预先配置的与对象对应的数据库存在,但是在该数据库中与对象对应的数据表尚不存在,则映射工具根据与该数据库对应的数据库脚本在该数据库中创建该数据表。
三、若与对象对应的数据表存在但在该数据表中与该对象的属性所对应的表字段不存在,则创建该表字段。
由于对象的属性和数据表中的表字段对应,当需要操作数据时,若映射工具检测到与对象对应的数据表存在,但是与该对象的属性所对应的表字段尚不存在,则映射工具根据与该数据库对应的数据库脚本在该数据表中创建该表字段。
具体来讲,上述自动创建功能是否开启可以在预先配置过程中配置,可以参考上述表3中,在对象和非关系型数据库中的某个对应层级中update="ture"表示启动自动创建,若update="false"表示关闭自动创建。对应层级包括:对象与数据库的对应层级、对象与数据表的对应层级、对象属性与数据表的表字段的对应层级。也即:
当对象与数据库的对应层级中的update="ture"时,若与对象对应的数据库尚不存在,则映射工具自动创建该数据库。
当对象与数据表的对应层级中的update="ture"时,若与对象对应的数据库存在但与该对象对应的数据表不存在,则映射工具自动创建该数据表。
当对象属性与数据表的表字段的对应层级中的update="ture"时,若与对象对应的数据表存在但在该数据表中与该对象的属性所对应的表字段不存在,则映射工具自动创建该表字段。
需要补充说明的另一点是:在上述实施例中是以采用XML方式对映射工具进行预先配置来举例说明。作为另一种可能的实现方式,本实施例还提供了一种注解式配置方式,示例如下。但本文对采用何种方式对映射工具进行预先配置不做限定。
具体的配置方式可以如下所示:
请参考图4,其示出了本发明一个实施例提供的数据库操作装置的结构方框图。该数据库操作装置可以通过软件、硬件或者两者的结合实现成为服务器的全部或者一部分,该装置,包括:
第一接收模块420,用于接收应用程序对映射工具中统一API的调用请求,该调用请求用于对对象进行数据操作,该映射工具提供至少一个统一API,每个统一API对应n个数据库脚本,同一个统一API对应的n个数据库脚本具有相同的功能且分别对应一种类型的非关系型数据库;
关系确定模块440,用于根据预设配置的对应关系确定与该对象对应的数据库和在该数据库中与该对象对应的数据表;
脚本调用模块460,用于在被调用的该统一API所对应的n个数据库脚本中,调用与该数据库对应的数据库脚本对该数据表进行数据操作。
综上所述,本发明实施例提供的数据库操作装置,通过接收应用程序对映射工具中统一API的调用请求;根据预设配置的对应关系确定与该对象对应的数据库和在该数据库中与该对象对应的数据表;在被调用的统一API所对应的n个数据库脚本中,调用与该数据库对应的数据库脚本对该数据表进行数据操作;解决了操作不同的非关系型数据库需要使用具有很大区别的不同数据库脚本进行数据操作的问题;达到了操作非关系型数据库时不需要了解并编写大量执行脚本,只需要使用统一API就可以实现在不同的非关系型数据库中操作数据的效果,减少了开发工作量,降低了应用程序与非关系型数据库的耦合,提高了开发效率。
请参考图5,其示出了本发明另一个实施例提供的数据库操作装置的结构方框图。该数据库操作装置可以通过软件、硬件或者两者的结合实现成为服务器的全部或者一部分,该装置,包括:
第一接收模块520,用于接收应用程序对映射工具中统一API的调用请求,该调用请求用于对对象进行数据操作,该映射工具提供至少一个统一API,每个统一API对应n个数据库脚本,同一个统一API对应的n个数据库脚本具有相同的功能且分别对应一种类型的非关系型数据库;
关系确定模块540,用于根据预设配置的对应关系确定与该对象对应的数据库和在该数据库中与该对象对应的数据表;
脚本调用模块560,用于在被调用的该统一API所对应的n个数据库脚本中,调用与该数据库对应的数据库脚本对该数据表进行数据操作。
所述装置,还包括:
第二接收模块512,用于接收对所述映射工具的配置请求;
信息配置模块514,用于根据所述配置请求配置各个数据库的连接信息和数据库类型,所述连接信息包括IP地址、端口、用户名和密码;
关系配置模块516,用于根据所述配置请求配置各个对象与各个数据库中的数据表的对应关系。
可选地,所述关系确定模块540,包括:
查询对应单元542,用于根据所述各个对象与各个数据库中的数据表的对应关系,查询与所述对象对应的数据库,和在所述数据库中与所述对象对应的数据表。
可选地,所述装置,还包括:
创建数据库模块570,用于若与所述对象对应的数据库尚不存在,则创建所述数据库;
创建数据表模块580,用于若与所述对象对应的数据库存在但与所述对象对应的数据表不存在,则创建所述数据表;
创建表字段模块590,用于若与所述对象对应的数据表存在但在所述数据表中与所述对象的属性所对应的表字段不存在,则创建所述表字段。
可选地,所述脚本调用模块560,包括:
类型获取单元562,用于获取与所述对象对应的数据库的数据库类型;
连接建立单元564,用于通过所述连接信息与所述数据库建立连接;
脚本调用单元566,用于在所述连接建立后,从被调用的所述统一API对应的n个数据库脚本中调用与所述数据库类型对应的数据库脚本对所述数据表进行数据操作。
可选地,所述统一API包括增加对象API、删除对象API、查询对象API和修改对象API中的至少一种。
综上所述,本发明实施例提供的数据库操作装置,通过接收应用程序对映射工具中统一API的调用请求;根据预设配置的对应关系确定与该对象对应的数据库和在该数据库中与该对象对应的数据表;在被调用的统一API所对应的n个数据库脚本中,调用与该数据库对应的数据库脚本对该数据表进行数据操作;解决了操作不同的非关系型数据库需要使用具有很大区别的不同数据库脚本进行数据操作的问题;达到了操作非关系型数据库时不需要了解并编写大量执行脚本,只需要使用统一API就可以实现在不同的非关系型数据库中操作数据的效果,减少了开发工作量,降低了应用程序与非关系型数据库的耦合,提高了开发效率。
本发明实施例提供的数据库操作装置,还通过接收对映射工具的配置请求;根据配置请求配置各个数据库的连接信息和数据库类型;根据配置请求配置各个对象与各个数据库中的数据表的对应关系;解决了操作非关系型数据库时判断对象与数据库的对应关系和对象与数据库中数据表的对应关系的问题;达到了能够更方便的查找到与对象对应的数据库和数据表的效果。
显然,应用程序的开发人员只需要了解和学习映射工具中的统一API的调用方法即可,不需要了解和学习各种非关系型数据库的数据库脚本。不仅减轻了应用程序的开发人员的工作量,而且还可以实现直接以对象为数据单位对数据库进行数据操作的效果。与直接操作数据表不同的是,直接以对象为数据单位对数据库进行数据操作,更符合应用程序的编程语言风格,能够提高数据操作的效率和减轻代码的复杂性。
需要说明的是:上述实施例提供的数据库操作装置在操作数据库时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据库操作的装置与数据库操作的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图6,其示出了本发明一个实施例提供的服务器的结构示意图。所述服务器600包括中央处理单元(CPU)601、包括随机存取存储器(RAM)602和只读存储器(ROM)603的存储器604,以及连接存储器604和中央处理单元601的***总线605。
根据本发明的各种实施例,所述服务器600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器600可以通过连接在所述***总线605上的网络接口单元606连接到网络607,或者说,也可以使用网络接口单元606来连接到其他类型的网络或远程计算机***(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本发明实施例提供的数据库操作方法的指令。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种数据库操作方法,其特征在于,所述方法包括:
接收应用程序对映射工具中统一API的调用请求,所述调用请求用于对对象进行数据操作,所述映射工具提供至少一个统一API,每个统一API对应n个数据库脚本,同一个统一API对应的n个数据库脚本具有相同的功能且分别对应一种类型的非关系型数据库;
根据预设配置的对应关系确定与所述对象对应的数据库和在所述数据库中与所述对象对应的数据表,所述对应关系为各个对象与各个数据库中的数据表的对应关系;
在被调用的所述统一API所对应的n个数据库脚本中,调用与所述数据库对应的数据库脚本对所述数据表进行数据操作。
2.根据权利要求1所述的方法,其特征在于,所述接收应用程序对映射工具中统一API的调用请求之前,所述方法还包括:
接收对所述映射工具的配置请求;
根据所述配置请求配置各个数据库的连接信息和数据库类型,所述连接信息包括IP地址、端口、用户名和密码;
根据所述配置请求配置各个对象与各个数据库中的数据表的对应关系。
3.根据权利要求2所述的方法,其特征在于,所述根据预设配置的对应关系确定与所述对象对应的数据库和在所述数据库中与所述对象对应的数据表,包括:
根据所述各个对象与各个数据库中的数据表的对应关系,查询与所述对象对应的数据库,和在所述数据库中与所述对象对应的数据表。
4.根据权利要求2所述的方法,其特征在于,所述在被调用的所述统一API对应的n个数据库脚本中,调用与所述数据库对应的数据库脚本对所述数据表进行数据操作,包括:
获取与所述对象对应的数据库的数据库类型;
通过所述连接信息与所述数据库建立连接;
在所述连接建立后,从被调用的所述统一API对应的n个数据库脚本中调用与所述数据库类型对应的数据库脚本对所述数据表进行数据操作。
5.根据权利要求3所述的方法,其特征在于,所述根据所述各个对象与各个数据库中的数据表的对应关系,查询与所述对象对应的数据库,和在所述数据库中与所述对象对应的数据表之后,还包括:
若与所述对象对应的数据库尚不存在,则创建所述数据库;
若与所述对象对应的数据库存在但与所述对象对应的数据表不存在,则创建所述数据表;
若与所述对象对应的数据表存在但在所述数据表中与所述对象的属性所对应的表字段不存在,则创建所述表字段。
6.根据权利要求1至5任一所述的方法,其特征在于,所述统一API包括增加对象API、删除对象API、查询对象API和修改对象API中的至少一种。
7.一种数据库操作装置,其特征在于,所述装置包括:
第一接收模块,用于接收应用程序对映射工具中统一API的调用请求,所述调用请求用于对对象进行数据操作,所述映射工具提供至少一个统一API,每个统一API对应n个数据库脚本,同一个统一API对应的n个数据库脚本具有相同的功能且分别对应一种类型的非关系型数据库;
关系确定模块,用于根据预设配置的对应关系确定与所述对象对应的数据库和在所述数据库中与所述对象对应的数据表,所述对应关系为各个对象与各个数据库中的数据表的对应关系;
脚本调用模块,用于在被调用的所述统一API所对应的n个数据库脚本中,调用与所述数据库对应的数据库脚本对所述数据表进行数据操作。
8.根据权利要求7所述的装置,其特征在于,所述装置,还包括:
第二接收模块,用于接收对所述映射工具的配置请求;
信息配置模块,用于根据所述配置请求配置各个数据库的连接信息和数据库类型,所述连接信息包括IP地址、端口、用户名和密码;
关系配置模块,用于根据所述配置请求配置各个对象与各个数据库中的数据表的对应关系。
9.根据权利要求8所述的装置,其特征在于,所述关系确定模块,包括:
查询对应单元,用于根据所述各个对象与各个数据库中的数据表的对应关系,查询与所述对象对应的数据库,和在所述数据库中与所述对象对应的数据表。
10.根据权利要求8所述的装置,其特征在于,所述脚本调用模块,包括:
类型获取单元,用于获取与所述对象对应的数据库的数据库类型;
连接建立单元,用于通过所述连接信息与所述数据库建立连接;
脚本调用单元,用于在所述连接建立后,从被调用的所述统一API对应的n个数据库脚本中调用与所述数据库类型对应的数据库脚本对所述数据表进行数据操作。
11.根据权利要求9所述的装置,其特征在于,所述装置,还包括:
创建数据库模块,用于若与所述对象对应的数据库尚不存在,则创建所述数据库;
创建数据表模块,用于若与所述对象对应的数据库存在但与所述对象对应的数据表不存在,则创建所述数据表;
创建表字段模块,用于若与所述对象对应的数据表存在但在所述数据表中与所述对象的属性所对应的表字段不存在,则创建所述表字段。
12.根据权利要求7至11任一所述的装置,其特征在于,所述统一API包括增加对象API、删除对象API、查询对象API和修改对象API中的至少一种。
13.一种数据库操作服务器,其特征在于,所述服务器包括如上权利要求7至权利要求12任一所述的数据库操作装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410395778.7A CN104267932B (zh) | 2014-08-12 | 2014-08-12 | 数据库操作方法、装置及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410395778.7A CN104267932B (zh) | 2014-08-12 | 2014-08-12 | 数据库操作方法、装置及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104267932A CN104267932A (zh) | 2015-01-07 |
CN104267932B true CN104267932B (zh) | 2017-11-07 |
Family
ID=52159456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410395778.7A Active CN104267932B (zh) | 2014-08-12 | 2014-08-12 | 数据库操作方法、装置及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104267932B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104991921B (zh) * | 2015-06-26 | 2019-02-15 | 北京奇虎科技有限公司 | 一种数据查询方法、客户端和服务器 |
CN105512014B (zh) * | 2015-12-10 | 2018-09-25 | 北京金山安全管理***技术有限公司 | 一种应用程序使用情况数据采集的方法和装置 |
CN105808776A (zh) * | 2016-03-29 | 2016-07-27 | 中国建设银行股份有限公司 | 一种分布式数据库的数据管理***及方法 |
CN105681477B (zh) * | 2016-04-08 | 2018-11-16 | 四川师范大学 | 一种数据访问方法和一种服务器 |
CN107622070B (zh) * | 2016-07-15 | 2021-05-14 | 深圳联友科技有限公司 | 一种数据库管理方法及装置 |
CN106686052A (zh) * | 2016-11-01 | 2017-05-17 | ***股份有限公司 | 一种存储***的调用方法及装置 |
CN106533764A (zh) * | 2016-11-14 | 2017-03-22 | 山东浪潮云服务信息科技有限公司 | 一种配置服务器、配置客户端、配置方法和*** |
CN107169032B (zh) * | 2017-04-17 | 2020-06-23 | 北京五八信息技术有限公司 | 数据库操作方法及数据库服务器 |
CN107656722B (zh) * | 2017-07-31 | 2019-03-12 | 平安科技(深圳)有限公司 | 数据操作方法、装置及计算机可读存储介质 |
CN108388717A (zh) * | 2018-02-08 | 2018-08-10 | 武汉智博创享科技股份有限公司 | 一种生成地下管网数据库模型的方法及装置 |
CN109165039B (zh) * | 2018-04-28 | 2019-10-01 | 北京数聚鑫云信息技术有限公司 | 一种web API的配置及执行方法、***及介质 |
CN109542964B (zh) * | 2018-11-06 | 2021-02-19 | 用友网络科技股份有限公司 | 一种数据调用方法及数据调用*** |
CN111414350B (zh) * | 2020-03-18 | 2023-05-12 | 腾讯科技(深圳)有限公司 | 一种服务生成方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744952A (zh) * | 2014-01-02 | 2014-04-23 | 北京集奥聚合网络技术有限公司 | NoSQL数据库多表特性的实现方法及*** |
CN103853803A (zh) * | 2013-06-26 | 2014-06-11 | 携程计算机技术(上海)有限公司 | 数据库的配置文件的封装方法和操作方法及其操作装置 |
CN103942281A (zh) * | 2014-04-02 | 2014-07-23 | 北京中交兴路车联网科技有限公司 | 一种对持久化存储的对象进行操作的方法及装置 |
-
2014
- 2014-08-12 CN CN201410395778.7A patent/CN104267932B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853803A (zh) * | 2013-06-26 | 2014-06-11 | 携程计算机技术(上海)有限公司 | 数据库的配置文件的封装方法和操作方法及其操作装置 |
CN103744952A (zh) * | 2014-01-02 | 2014-04-23 | 北京集奥聚合网络技术有限公司 | NoSQL数据库多表特性的实现方法及*** |
CN103942281A (zh) * | 2014-04-02 | 2014-07-23 | 北京中交兴路车联网科技有限公司 | 一种对持久化存储的对象进行操作的方法及装置 |
Non-Patent Citations (1)
Title |
---|
"数据库统一接口设计与实现";强晓琳;《科学技术与工程》;20060601;1500-1504 * |
Also Published As
Publication number | Publication date |
---|---|
CN104267932A (zh) | 2015-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104267932B (zh) | 数据库操作方法、装置及服务器 | |
AU2021212135A1 (en) | Building and managing data-processing attributes for modelled data sources | |
CN109308224A (zh) | 跨平台数据通信、跨平台数据处理的方法、装置及*** | |
CN113508403A (zh) | 用于自动化***组件与多个信息源的可互操作通信的***和方法 | |
WO2017156916A1 (zh) | 数据访问方法和装置 | |
US7885204B1 (en) | Method and system for testing network topology | |
JP2010531481A (ja) | 表形式データストリームプロトコルによる表値パラメータの転送 | |
WO2017161956A1 (zh) | 一种数据库扩展***、设备和用于扩展数据库的方法 | |
CN113821565B (zh) | 一种多数据源同步数据的方法 | |
US20190073600A1 (en) | Skipping maintenance mode of applications | |
CN105824944B (zh) | 一种基于脚本语言的xml配置数据维护方法及*** | |
US7127721B2 (en) | Core object model for network management configuration applications in telecommunication systems | |
CN104166705A (zh) | 数据库的访问方法及装置 | |
CN104750468B (zh) | 一种服务端拓扑数据转换方法和转换装置 | |
US7630988B2 (en) | Computer product and session management method | |
CN112883088B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
WO2023045743A1 (zh) | 数据库数据自动生成Json数据的方法、可读介质和电子设备 | |
CN116048517B (zh) | 基于b/s架构应用***的api接口生成方法、***和装置 | |
US10303527B1 (en) | Active directory attribute mapping | |
US8930960B2 (en) | Methods and systems for object interpretation within a shared object space | |
CN110889069A (zh) | 一种基于web在线学***台 | |
CN114466047B (zh) | 物联网设备便捷接入物联网平台的方法、平台、设备及介质 | |
CN111046021B (zh) | 一种物联网型配变终端应用开发平台 | |
CN104808970A (zh) | 一种实现国际化软件的方法和*** | |
CN1658579A (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 | ||
CB02 | Change of applicant information |
Address after: 511446 Guangzhou City, Guangdong Province, Panyu District, South Village, Huambo Business District Wanda Plaza, block B1, floor 28 Applicant after: Guangzhou Huaduo Network Technology Co., Ltd. Address before: 510655, Guangzhou, Whampoa Avenue, No. 2, creative industrial park, building 3-08, Applicant before: Guangzhou Huaduo Network Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |