[发明专利]一种数据存储方法、装置及计算机设备有效
申请号: | 201910199823.4 | 申请日: | 2019-03-15 |
公开(公告)号: | CN109871338B | 公开(公告)日: | 2021-01-29 |
发明(设计)人: | 吕志鹏 | 申请(专利权)人: | 北京思特奇信息技术股份有限公司 |
主分类号: | G06F12/0897 | 分类号: | G06F12/0897 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 杨立 |
地址: | 100089 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 存储 方法 装置 计算机 设备 | ||
本发明提供了一种数据存储方法、装置及计算机设备,所述方法包括:在每个cache下对应的多个sqlID,在每个sqlID对应的一个或多个第一表,将不同cache下具有相同表名的多个第一表和具有不同sqlID的内容合并,得到一个或多个合并后的第二表,其中,每个所述第二表包含多个cache所对应的多个sqlID,每个所述第二表对应多个表名相同的第一表,任意两个所述第二表之间没有同名的第一表;解析当前操作的sql指令对应的sqlID、以及该指令对应的cache;判断当前操作的sqlID以及cache所在的合并后的第二表是否一致,若一致根据所述当前操作的sql操作,对第二表中涉及的多个cache的数据进行删除或重新从数据库中调取数据,写入缓存。
技术领域
本发明涉及数据存储技术领域,尤其是涉及一种数据存储方法、装置及计算机设备。
背景技术
mybatis是一种流行的java持久层框架,主要用来简化传统jdbc方式对数据库的操作。以数据为中心建立POJO与SQL之间的映射关系,然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。iBATIS是一种“Sql Mapping”的ORM实现。
二级缓存mybatis在使用中要求在整个系统中只有单表操作,并且和该表相关的全部操作必须在一个namespace下。执行写入操作时,将含有客户信息的数据写入cache1的客户数据表;如果有更新操作时,将含有客户信息的数据在cache2的客户数据表中更新数据;由于在cache2的客户数据表中更新了数据,在更新操作之后,会清空cache2的客户数据表的数据内容。在二级缓存内读取客户信息数据时,由于cache1中存储有客户数据表,系统不访问数据库的数据,直接从cache1中客户数据表读取数据,而在cache2中客户数据已经做了修改并清除,此时读取的cache1中客户数据不是最新的数据,从而导致数据读取错误。
发明内容
针对现有技术存在的缺陷,第一方面,本发明提供了一种数据存储方法,用于实现对数据的二级缓存,包括:
在每个cache下对应的多个sqlID,在每个sqlID对应的一个或多个第一表,将不同cache下具有相同表名的多个第一表和具有不同sqlID的内容合并,得到一个或多个合并后的第二表,其中,每个所述第二表包含多个cache所对应的多个sqlID,每个所述第二表对应多个表名相同的第一表,任意两个所述第二表之间没有同名的第一表;
解析当前操作的sql指令对应的sqlID、以及该指令对应的cache;
判断当前操作的sqlID以及cache所在的合并后的第二表是否一致,若一致根据所述当前操作的sql操作,对第二表中涉及的多个cache的数据进行删除或重新从数据库中调取数据,写入缓存。
本发明的有益效果是:
本发明是更加细粒度分析缓存中数据和缓存表之间的相互关系。通过设置合理的数据结构来表达这种关系。针对更新操作时能更加细粒度删除数据,而不是将整个缓存数据都删除,同时一并解决了不同mapper之间缓存无联系这种缺陷导致在使用缓存具有很大局限性。
进一步,所述当前操作的sql操作包括以下至少之一:查询操作、更新操作、提交操作、回滚操作。
进一步,当所述当前操作的sql操作为查询操作时,执行所述查询操作包括:
先从cache中判断是否存在需要查询的数据,如果存在则直接返回;
如果不存在则获取该查询操作涉及到的第一表,将查询结果放入缓存队列。
进一步,当所述当前操作的sql操作为更新操作时,执行所述更新操作包括:
根据所述映射关系,获取所述更新操作对应的第一表的表名;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京思特奇信息技术股份有限公司,未经北京思特奇信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910199823.4/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置