一种对持久化存储的对象进行操作的方法及装置制造方法及图纸

技术编号:10252306 阅读:132 留言:0更新日期:2014-07-24 13:05
本发明专利技术公开了一种对持久化存储的对象进行操作方法及装置,该方法包括:生成包含有操作函数的第一公共接口,所述第一公共接口为数据库中各个类实例化后的对象所共用;接收通过调用所述第一公共接口的操作函数,发起的对目标类实例化后的对象的第一操作请求;建立与所述数据库的连接;将所述目标类实例化后的对象映射为所述数据库存储的相应集合中的文档,对所述文档执行与所述第一公共接口中的操作函数相对应的操作。本发明专利技术提供的技术方案能够减少代码量,提高开发和维护的有效性。

【技术实现步骤摘要】
一种对持久化存储的对象进行操作的方法及装置
本专利技术实施例涉及计算机
,尤其涉及一种对持久化存储的对象进行操作的方法及装置。
技术介绍
面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,MongoDB数据库是企业级应用环境中以文档(集合)形式永久存放数据的主流存储系统。对象和文档数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为文档数据,故需要采用一种中间件,实现程序对象到MongoDB数据库数据的映射。在现有的技术中,Morphia作为一种开放源代码的ORM(ObjectRelationMapping,对象关系映射)框架,主要实现了JAVA对象到MongoDB数据库数据的映射,从而可以使得JAVA程序员可以十分方便的使用对象的编程思想来操纵MongoDB数据库。但是,现有的MongoDB数据库的ORM框架存在如下缺陷:针对于MongoDB数据库中的每一个集合(collection),ORM框架都生成一套DAO、Service,即为每个集合所对应的对象实现一组对该对象进行增、删、改、查等操作的接口,代码量大,开发和维护的难度较高。
技术实现思路
本专利技术提供一种对持久化存储的对象进行操作的方法及装置,以实现减少代码量,提高开发和维护的有效性。第一方面,本专利技术实施例提供了一种对持久化存储的对象进行操作的方法,该方法包括:生成包含有操作函数的第一公共接口,所述第一公共接口为数据库中各个类实例化后的对象所共用;接收通过调用所述第一公共接口的操作函数,发起的对目标类实例化后的对象的第一操作请求;建立与所述数据库的连接;将所述目标类实例化后的对象映射为所述数据库存储的相应集合中的文档,对所述文档执行与所述第一公共接口中的操作函数相对应的操作。第二方面,本专利技术实施例还提供了一种对持久化存储的对象进行操作的装置,该装置包括:公共接口生成单元,用于生成包含有操作函数的第一公共接口,所述第一公共接口为数据库中各个类实例化后的对象所共用;操作请求接收单元,用于接收通过调用所述第一公共接口的操作函数,发起的对目标类实例化后的对象的第一操作请求;数据库连接单元,用于建立与所述数据库的连接;数据库操作单元,用于将所述目标类实例化后的对象映射为所述数据库存储的相应集合中的文档,对所述文档执行与所述第一公共接口中的操作函数相对应的操作。本专利技术实施例通过生成一组为数据库中各个类实例化后的对象所共用的公共接口,来实现对数据库执行相关操作的调用,而不是为每个集合对应实现一组对该集合进行增、删、改、查等操作的接口,减少了代码量,提高了开发和维护的有效性。附图说明图1是本专利技术实施例一提供的一种对持久化存储的对象进行操作的方法的流程示意图;图2是本专利技术实施例一提供的方法所适用的一种网络架构;图3是本专利技术实施例二提供的一种对持久化存储的对象进行操作的方法的流程示意图;图4是本专利技术实施例三提供的一种对持久化存储的对象进行操作的装置的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。图1为本专利技术实施例一提供的一种对持久化存储的对象进行操作的方法的流程示意图。本实施例可适用于由服务开发平台和数据库平台组成的网络架构中,该方法可以由对持久化存储的对象进行操作的装置来执行,该装置可被置备在服务开发平台上,也可独立于数据库平台和服务开发平台而存在,能够与数据库平台与服务开发平台通信连接。图2是本专利技术实施例一提供的方法所适用的一种网络架构。参见图2,该网络架构包括:应用服务器201、对持久化存储的对象进行操作的装置202和MongoDB数据库203。装置202接收应用服务器201发起的操作请求,对该请求进行处理,并根据处理结果对MongoDB数据库203执行相应操作。参见图1,该方法具体包括如下步骤:110、生成包含有操作函数的第一公共接口,所述第一公共接口为数据库中各个类实例化后的对象所共用;120、接收通过调用所述第一公共接口的操作函数,发起的对目标类实例化后的对象的第一操作请求;130、建立与数据库的连接;140、将目标类实例化后的对象映射为数据库存储的相应集合中的文档,对所述文档执行与第一公共接口中的操作函数相对应的操作。在本实施例的一个具体的实施方式中,可根据模板机制生成包含有操作函数的第一公共接口。其中,模板机制是针对同一类问题所提供的一种通用的解决方案,是代码重用机制的一种工具,可通过将类型参数化,来实现真正的代码可重用性。在此具体实施方式下,根据模板机制将现有技术实现的与数据库中的每一个类相对应的各接口,转换成能够为数据库中各个类实例化后的对象所共用的一个接口(第一公共接口)。该接口包含了各种操作函数,操作函数将数据库中的各个类的名称定义为一个参数,操作函数可根据所定义的各个类的名称和/或其相应的对象的唯一标识这些参数来进一步实现对相应类的操作。在本实施例中,操作函数可包括插入操作函数、删除操作函数、更新操作函数和/或查询操作函数。本领域的普通技术人员应理解,还可基于第一公共接口自行扩展一些个性接口以完成对数据库中特殊对象的操作;操作函数还可包括批量插入操作函数、条件查询操作函数等。下面以一段具体的第一公共接口的实现代码为例,对第一公共接口作进一步解释。publicclassMongoDaoImpl<TextendsObject>implementsIMongoDao<T>//声明第一公共接口{publicvoidsave(Tentity)throwsException//第一公共接口中的插入操作函数,其参数中:形参T为数据库中的各个类的模板类型,实参entity是对T实例化的对象{if(entity==null){thrownewException("entitycannotbenull!");}ds=MongoDatasource.getInstance(getDatasource()).getDatastore(entity.getClass());ds.save(entity);}publicTget(Class<T>clazz,Objectid)throwsException//第一公共接口中的查找操作函数,其参数中:形参T为数据库中的各个类的模板类型,实参clazz是对T实例化的对象,与形参Object这一数据类型所对应的实参id是对象clazz的唯一标识;其返回类型为T{if(id==null){thrownewException("idcannotbenull!");}ds=MongoDatasource.getInstance(getDatasource()).getDatastore(clazz);if(idinstanceofString){returnds.createQuery(clazz).field(Mapper.ID_KEY).equal((String)id).get();}elseif(idinstanceofObjectId){returnds.cr本文档来自技高网...
一种对持久化存储的对象进行操作的方法及装置

【技术保护点】
一种对持久化存储的对象进行操作方法,其特征在于,包括:生成包含有操作函数的第一公共接口,所述第一公共接口为数据库中各个类实例化后的对象所共用;接收通过调用所述第一公共接口的操作函数,发起的对目标类实例化后的对象的第一操作请求;建立与所述数据库的连接;将所述目标类实例化后的对象映射为所述数据库存储的相应集合中的文档,对所述文档执行与所述第一公共接口中的操作函数相对应的操作。

【技术特征摘要】
1.一种对持久化存储的对象进行操作方法,其特征在于,包括:生成包含有操作函数的第一公共接口,所述第一公共接口为数据库中各个类实例化后的对象所共用;接收通过调用所述第一公共接口的操作函数,发起的对目标类实例化后的对象的第一操作请求;建立与所述数据库的连接;将所述目标类实例化后的对象映射为所述数据库存储的相应集合中的文档,对所述文档执行与所述第一公共接口中的操作函数相对应的操作;生成包含有操作函数的第二公共接口,所述第二公共接口为数据库中各个文件对象所共用;接收通过调用所述第二公共接口的操作函数,发起的对目标文件对象的第二操作请求;将所述目标文件对象映射为所述数据库存储的相应文件,对所述文件执行与所述第二公共接口中的操作函数相对应的操作;其中,所述第二公共接口中的操作函数包括上传文件函数、删除文件函数和/或获取文件函数。2.根据权利要求1所述的对持久化存储的对象进行操作方法,其特征在于,所述生成包含有操作函数的第一公共接口,包括:根据模板机制生成包含有操作函数的第一公共接口;其中,所述操作函数将各个类名称定义为一个参数;所述操作函数包括插入操作函数、删除操作函数、更新操作函数和/或查询操作函数。3.根据权利要求1所述的对持久化存储的对象进行操作方法,其特征在于,在所述将所述目标类实例化后的对象映射为所述数据库存储的相应集合中的文档之前,还包括:通过注解的方式建立所述数据库中集合与各个类之间的映射关系。4.根据权利要求1所述的对持久化存储的对象进行操作方法,其特征在于,所述建立与所述数据库的连接,包括:通过解析连接配置文件,确定所述数据库所在的至少一个数据源及其与各数据源上的所述数据库的连接配置信息;通过与各数据源唯一对应的连接池,根据所述连接配置信息建立与各数据源上的所述数据库的连接;其中,所述数据库的配置方式包括单点、主从或集群配置方式。5.一种对持久化存储的对象进行操作装置,其特征在于,包括:...

【专利技术属性】
技术研发人员:蔡抒扬王鹏胡道生夏曙光
申请(专利权)人:北京中交兴路车联网科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1