[发明专利]数据库存储和查询方法、属性值获取方法和设备有效
申请号: | 201610035963.4 | 申请日: | 2016-01-20 |
公开(公告)号: | CN105718556B | 公开(公告)日: | 2019-06-04 |
发明(设计)人: | 刘锟洋 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F16/245 | 分类号: | G06F16/245 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 吕雁葭 |
地址: | 100080 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 存储 查询 方法 属性 获取 设备 | ||
本发明提供了一种数据库存储和查询方法、属性值获取方法和设备。根据本发明,将Java对象的MongoDB属性值与Java对象的Mysql主键ID一起存储。在查询时,如果查询对象含有MongoDB属性,则生成按需加载的代码,并将该代码与Mysql属性值一起组装成代理对象作为查询结果对象。在获取属性值时,调用该按需加载的代码,从MongoDB数据库获取相应的MongoDB属性值。
技术领域
本发明总体上涉及数据库领域,具体地涉及一种数据库存储和查询方法、属性值获取方法和设备。更具体地,本发明涉及一种统一Mysql与MongoDB存取方式的数据库存储和查询方法、属性值获取方法和设备。
背景技术
Mysql是一种关系型数据库管理系统,其将数据保存在不同的表中,通常为web系统最主要的持久化工具。MongoDB是一个基于分布式文件存储的数据库,是非关系型数据库当中功能最丰富,与关系型数据库最相似的。在web系统中,通常用Mongo存取长文本字段(即,字符长度大于255的字段)。
在编写Java程序时,经常需要同时查询Mysql和MongoDB的数据。现有技术通常采用以下方法:首先,使用Java Annotation(以下简称“Annotation”)技术对需要存放到MongoDB的Java属性做标记;然后,将剩余需要映射到Mysql的Java属性配置好iBatis ORM框架的配置文件;最后,在编写Dao层代码时使用指定API(Application ProgrammingInterface,应用程序编程接口)查询数据,实现数据的组装。这里使用的iBatis ORM框架是一个将Java对象和属性映射成为数据库的一条记录和字段的映射框架。
图1示出了该现有技术的具体实现步骤。如图1所示,在步骤S110,调用API查询数据。在步骤S120,根据查询的Java实体找到对应的iBatis配置文件,从Mysql中查询出数据。在步骤S130,使用Java Annotation技术,判断当前Java实体是否有属于MongoDB的属性,若有,进行到步骤S140,若无,进行到步骤S170,返回数据,结束查询。在步骤S140,再次使用Java Annotation技术获取到实体中的MongoDB属性列表。在步骤S150,从MongoDB中查询出关联数据。在步骤S160,将Mysql和MongoDB查询的数据做组装。在步骤S170,返回数据,结束查询。
现有技术方案在每次查询时默认会把存储在MongoDB中的数据读取出来,不能灵活控制获取MongoDB属性的时机,导致MongoDB数据的读取频率很高,查询延时明显增加。
发明内容
本发明的一个方面提供了一种数据库存储方法,包括:根据与Java对象相对应的iBatis配置文件将Java对象中的Mysql属性值存储到Mysql数据库,并获取该Java对象在Mysql数据库中的Mysql主键ID;确定Java对象中是否有要存储到MongoDB数据库的MongoDB属性值;如果Java对象中没有要存储到MongoDB数据库的MongoDB属性值,则结束本次存储;以及如果Java对象中有要存储到MongoDB数据库的MongoDB属性值,则把要存储到MongoDB数据库的MongoDB属性值与该Java对象的Mysql主键ID一起存入MongoDB数据库中,结束本次存储,其中,MongoDB属性值所属MongoDB属性对应有作为查询结果对象的代理对象,所述代理对象包括Mysql属性值和按需加载代码,所述按需加载代码在被调用时,根据被查询的Java对象的Mysql主键ID从MongoDB数据库中查询MongoDB属性值以返回MongoDB属性值。
可选地,根据Java Annotation技术确定Java对象中是否有要存储到MongoDB数据库中的属性值并确定该属性值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610035963.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种智能音乐推荐系统
- 下一篇:文件存储系统及其文件存储控制方法