基于hibernate拦截器的分表方法、装置、电子设备及存储介质制造方法及图纸

技术编号:35273353 阅读:20 留言:0更新日期:2022-10-19 10:48
本申请公开了一种基于hibernate拦截器的分表方法、装置、电子设备及计算机存储介质,所述方法包括:通过hibernate拦截器获取待执行的SQL语句以及对应的主键值;解析所述SQL语句,获取所述SQL语句中的目标信息,所述目标信息包括待查询表名和待查询列名;在所述待查询列名为主键时,基于所述目标信息和所述主键值,从预先配置的至少一分表规则中确定与所述SQL语句匹配的目标分表规则;将所述SQL语句中的所述待查询表名替换为所述目标分表规则中的新表名,并执行处理后的所述SQL语句。如此,可通过非侵入式、不修改原代码且不依赖额外技术实现分表,提高了数据处理效率。提高了数据处理效率。提高了数据处理效率。

【技术实现步骤摘要】
基于hibernate拦截器的分表方法、装置、电子设备及存储介质


[0001]本专利技术涉及数据查询
,特别是涉及一种基于hibernate拦截器的分表方法、装置、电子设备及计算机存储介质。

技术介绍

[0002]在单表有上千万大数据场景下,对于数据库查询和插入性能降低问题,通过将历史数据拆分为多个数据表,使单一数据表的数据量减少,从而可提高实时业务存取数据的处理能力,保障业务服务的实时稳定性。然而,目前已有的分表方法都是侵入式解决方案,需要引用第三方技术,且数据处理效率低。

技术实现思路

[0003]本专利技术的目的在于提供一种基于hibernate拦截器的分表方法、装置、电子设备及计算机存储介质,通过非侵入式、不修改原代码且不依赖额外技术实现分表,提高了数据处理效率。
[0004]为达到上述目的,本专利技术的技术方案是这样实现的:
[0005]第一方面,本专利技术实施例提供了一种基于hibernate拦截器的分表方法,所述方法包括以下步骤:
[0006]通过hibernate拦截器获取待执行的SQL语句以及对应的主键值;
[0007]解析所述SQL语句,获得所述SQL语句中的目标信息,所述目标信息包括待查询表名和待查询列名;
[0008]在所述待查询列名为主键时,基于所述目标信息和所述主键值,从预先配置的至少一分表规则中确定与所述SQL语句匹配的目标分表规则;
[0009]将所述SQL语句中的所述待查询表名替换为所述目标分表规则中的新表名,并执行处理后的所述SQL语句。
[0010]作为其中一种实施方式,所述目标信息还包括操作类型;所述基于所述目标信息和所述主键值,从预先配置的至少一分表规则中确定与所述SQL语句匹配的目标分表规则之前,还包括:
[0011]检测所述操作类型是否为预设类型;
[0012]若是,则基于所述目标信息和所述主键值,从预先配置的至少一分表规则中确定与所述SQL语句匹配的目标分表规则的步骤。
[0013]作为其中一种实施方式,所述分表规则包括原表名、列名和操作条件;所述基于所述目标信息和所述主键值,从预先配置的至少一分表规则中确定与所述SQL语句匹配的目标分表规则,包括:
[0014]基于所述目标信息查找预先配置的至少一分表规则,获得原表名为待查询表名、列名为待查询列名的候选分表规则;
[0015]将与所述主键值相匹配的操作条件所对应的所述候选分表规则确定为与所述SQL语句匹配的目标分表规则。
[0016]作为其中一种实施方式,所述通过hibernate拦截器获取待执行的SQL语句以及对应的主键值,包括以下步骤:
[0017]配置hibernate拦截器,以新建自定义拦截类;
[0018]通过所述自定义拦截类获取待执行的SQL语句以及对应的主键值。
[0019]第二方面,本专利技术实施例提供了一种基于hibernate拦截器的分表装置,包括:
[0020]获取模块,用于通过hibernate拦截器获取待执行的SQL语句以及对应的主键值;
[0021]解析模块,用于解析所述SQL语句,获取所述SQL语句中的目标信息,所述目标信息包括待查询表名和待查询列名;
[0022]匹配模块,用于在所述待查询列名为主键时,基于所述目标信息和所述主键值,从预先配置的至少一分表规则中确定与所述SQL语句匹配的目标分表规则;
[0023]处理模块,用于将所述SQL语句中的所述待查询表名替换为所述目标分表规则中的新表名,并执行处理后的所述SQL语句。
[0024]作为其中一种实施方式,所述装置还包括检测模块,用于检测所述操作类型是否为预设类型,若是,则触发所述匹配模块执行相应处理。
[0025]作为其中一种实施方式,所述分表规则包括原表名、列名和操作条件;所述匹配模块,具体用于:
[0026]基于所述目标信息查找预先配置的至少一分表规则,获得原表名为待查询表名、列名为待查询列名的候选分表规则;
[0027]将与所述主键值相匹配的操作条件所对应的所述候选分表规则确定为与所述SQL语句匹配的目标分表规则。
[0028]作为其中一种实施方式,所述获取模块,具体用于:
[0029]配置hibernate拦截器,以新建自定义拦截类;
[0030]通过所述自定义拦截类获取待执行的SQL语句以及对应的主键值。
[0031]第三方面,本专利技术实施例提供了一种电子设备,包括:处理器和存储有计算机程序的存储器,在所述处理器运行所述计算机程序时,实现上述所述的基于hibernate拦截器的分表方法。
[0032]第四方面,本专利技术实施例提供了一种计算机存储介质,存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面所述的基于hibernate拦截器的分表方法。
[0033]本专利技术实施例提供的基于hibernate拦截器的分表方法、装置、电子设备及计算机存储介质,包括:通过hibernate拦截器获取待执行的SQL语句以及对应的主键值;解析所述SQL语句,获取所述SQL语句中的目标信息,所述目标信息包括待查询表名和待查询列名;在所述待查询列名为主键时,基于所述目标信息和所述主键值,从预先配置的至少一分表规则中确定与所述SQL语句匹配的目标分表规则;将所述SQL语句中的所述待查询表名替换为所述目标分表规则中的新表名,并执行处理后的所述SQL语句。如此,可通过非侵入式、不修改原代码且不依赖额外技术实现分表,提高了数据处理效率。
附图说明
[0034]图1为本专利技术实施例提供的一种基于hibernate拦截器的分表方法的流程示意图;
[0035]图2为本专利技术实施例提供的一种基于hibernate拦截器的分表装置的结构示意图;
[0036]图3为本专利技术实施例提供的一种电子设备的结构示意图。
具体实施方式
[0037]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的设备和方法的例子。
[0038]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素,此外,本申请不同实施例中具有同样命名的部件、特征、要素可能具有相同含义,也可能具有不同含义,其具体含义需以其在该具体实施例中的解释或者进一步结合该具体实施例中上下文进行确定。
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于hibernate拦截器的分表方法,其特征在于,所述方法包括以下步骤:通过hibernate拦截器获取待执行的SQL语句以及对应的主键值;解析所述SQL语句,获得所述SQL语句中的目标信息,所述目标信息包括待查询表名和待查询列名;在所述待查询列名为主键时,基于所述目标信息和所述主键值,从预先配置的至少一分表规则中确定与所述SQL语句匹配的目标分表规则;将所述SQL语句中的所述待查询表名替换为所述目标分表规则中的新表名,并执行处理后的所述SQL语句。2.根据权利要求1所述的基于hibernate拦截器的分表方法,其特征在于,所述目标信息还包括操作类型;所述基于所述目标信息和所述主键值,从预先配置的至少一分表规则中确定与所述SQL语句匹配的目标分表规则之前,还包括:检测所述操作类型是否为预设类型;若是,则基于所述目标信息和所述主键值,从预先配置的至少一分表规则中确定与所述SQL语句匹配的目标分表规则的步骤。3.根据权利要求1或2所述的基于hibernate拦截器的分表方法,其特征在于,所述分表规则包括原表名、列名和操作条件;所述基于所述目标信息和所述主键值,从预先配置的至少一分表规则中确定与所述SQL语句匹配的目标分表规则,包括:基于所述目标信息查找预先配置的至少一分表规则,获得原表名为待查询表名、列名为待查询列名的候选分表规则;将与所述主键值相匹配的操作条件所对应的所述候选分表规则确定为与所述SQL语句匹配的目标分表规则。4.根据权利要求1或2所述的基于hibernate拦截器的分表方法,其特征在于,所述通过hibernate拦截器获取待执行的SQL语句以及对应的主键值,包括以下步骤:配置hibernate拦截器,以新建自定义拦截类;通过所述自定义拦截类获取待执行的SQL语句以及对应的主键值。5.一种基于hibernate拦截器的分...

【专利技术属性】
技术研发人员:张世伟朱振辉王念
申请(专利权)人:上海斑马来拉物流科技有限公司
类型:发明
国别省市:

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

1