一种数据访问方法和装置制造方法及图纸

技术编号:34733409 阅读:8 留言:0更新日期:2022-08-31 18:23
本申请公开一种数据访问方法和装置,当需要访问数据表时,获取数据访问请求,数据访问请求中包括待访问数据表的目标数据表标识;根据目标数据表标识和映射关系,确定待访问数据表所属的目标数据库模式,映射关系用于指示数据表和数据库模式之间的映射关系;根据目标数据表标识确定待访问数据表对应的静态查询语句模板,静态查询语句模板中包括目标数据表标识和拼接符。利用目标数据库模式的模式参数替换待访问数据表对应的静态查询语句模板中的拼接符,得到目标查询语句,进而根据目标查询语句访问待访问数据表。本申请在访问默认数据库模式或非默认数据库模式中的数据表时,可以降低人力和时间成本,处理过程方便快捷,提高了数据访问的效率。了数据访问的效率。了数据访问的效率。

【技术实现步骤摘要】
一种数据访问方法和装置


[0001]本申请涉及数据处理领域,特别是涉及一种数据访问方法和装置。

技术介绍

[0002]在一般的中小型系统中,一个信息系统使用一个数据库用户,管理一个schema的数据,通过信息系统对数据库中数据状态的读取和维护,完成一个或一系列的业务功能。在大型的分布式微服务系统中,一般一个微服务使用一个单独的数据库,有独立的数据库用户和数据,一个微服务的数据库用户不能访问另一个微服务的数据。
[0003]而对于一些特殊的大型分布式系统来说,因业务场景对事务一致性、对延时、对结果准确有着高要求,同时还有业务流程中错综复杂的关系,导致服务承受分布式事务带来的风险,因此,针对这种情况,将大型系统的业务功能模块采用jar包集成并相互之间进行本地调用则可避免分布式带来的事务一致性问题。
[0004]然而,各个业务功能模块的数据都有着数据库模式(schema)级别的隔离,一个业务功能模块默认连接一个数据库的schema,使用其他业务功能模块的功能则需要访问同一个数据库下不同的schema。为了实现能准确地读到非默认schema的数据表,只能通过在开发阶段,将对应要访问的schema名称写在对应结构化查询语言(Structured Query Language,SQL)上的方式来实现功能。
[0005]但是,通过这种方式进行数据访问,只要访问的是非默认schema中的数据表,就需要研发人员在开发阶段重新编写SQL,耗费较大的人力和时间成本,操作复杂,降低了数据访问的效率。
专利技术内容
[0006]为了解决上述技术问题,本申请提供了一种数据访问方法和装置,使得系统投产后运维进行动态配置成为可能,从而在数据访问时可以灵活的配置数据表和数据库模式之间的对应关系,即使在访问非默认schema中的数据表时,也可以在访问过程中通过自动替换拼接符的方式得到访问非默认schema所需的目标查询语句,无需研发人员在开发阶段重新编写SQL,降低人力和时间成本,处理过程方便快捷,提高了数据访问的效率。
[0007]第一方面,本申请实施例提供一种数据访问方法,所述方法包括:
[0008]获取数据访问请求,所述数据访问请求中包括待访问数据表的目标数据表标识;
[0009]根据所述目标数据表标识和映射关系,确定所述待访问数据表所属的目标数据库模式,所述映射关系用于指示数据表和数据库模式之间的映射关系;
[0010]根据所述目标数据表标识确定所述待访问数据表对应的静态查询语句模板,所述静态查询语句模板中包括所述目标数据表标识和用于修饰所述待访问数据表的拼接符;
[0011]利用所述目标数据库模式的模式参数替换所述待访问数据表对应的静态查询语句模板中的拼接符,得到目标查询语句;
[0012]根据所述目标查询语句访问所述待访问数据表。
[0013]在一种可能的实现方式中,所述根据所述目标数据表标识和映射关系,确定所述待访问数据表所属的目标数据库模式之后,所述方法还包括:
[0014]确定所述目标数据库模式是否为默认数据库模式;
[0015]若确定所述目标数据库模式不是默认数据库模式,执行根据所述目标数据表标识确定所述待访问数据表对应的静态查询语句模板的步骤。
[0016]在一种可能的实现方式中,所述方法还包括:
[0017]若确定所述目标数据库模式是默认数据库模式,按照预设跳转路径访问所述目标数据库模式中的待访问数据表。
[0018]在一种可能的实现方式中,所述映射关系是通过配置文件的形式或者数据库参数表的形式进行存储的。
[0019]在一种可能的实现方式中,所述获取数据访问请求,包括:
[0020]通过数据持久层组件拦截所述数据访问请求。
[0021]第二方面,本申请实施例提供一种数据访问装置,所述装置包括:
[0022]获取单元,用于获取数据访问请求,所述数据访问请求中包括待访问数据表的目标数据表标识;
[0023]确定单元,用于根据所述目标数据表标识和映射关系,确定所述待访问数据表所属的目标数据库模式,所述映射关系用于指示数据表和数据库模式之间的映射关系;
[0024]所述确定单元,还用于根据所述目标数据表标识确定所述待访问数据表对应的静态查询语句模板,所述静态查询语句模板中包括所述目标数据表标识和用于修饰所述待访问数据表的拼接符;
[0025]替换单元,用于利用所述目标数据库模式的模式参数替换所述待访问数据表对应的静态查询语句模板中的拼接符,得到目标查询语句;
[0026]访问单元,用于根据所述目标查询语句访问所述待访问数据表。
[0027]在一种可能的实现方式中,所述确定单元还用于:
[0028]在根据所述目标数据表标识和映射关系,确定所述待访问数据表所属的目标数据库模式之后,确定所述目标数据库模式是否为默认数据库模式;
[0029]若确定所述目标数据库模式不是默认数据库模式,触发所述确定单元执行根据所述目标数据表标识确定所述待访问数据表对应的静态查询语句模板的步骤。
[0030]在一种可能的实现方式中,所述访问单元还用于:
[0031]若所述确定单元确定所述目标数据库模式是默认数据库模式,按照预设跳转路径访问所述目标数据库模式中的待访问数据表。
[0032]在一种可能的实现方式中,所述映射关系是通过配置文件的形式或者数据库参数表的形式进行存储的。
[0033]在一种可能的实现方式中,所述获取单元,具体用于:
[0034]通过数据持久层组件拦截所述数据访问请求。
[0035]由上述技术方案可以看出,当业务功能模块或者应用需要访问数据表时,可以获取数据访问请求,数据访问请求中包括待访问数据表的目标数据表标识;根据目标数据表标识和映射关系,确定待访问数据表所属的目标数据库模式,映射关系用于指示数据表和数据库模式之间的映射关系;根据目标数据表标识确定待访问数据表对应的静态查询语句
模板,静态查询语句模板中包括目标数据表标识和用于修饰待访问数据表的拼接符。这样,可以利用目标数据库模式的模式参数替换待访问数据表对应的静态查询语句模板中的拼接符,得到目标查询语句,进而根据目标查询语句访问待访问数据表。通过这种方式使得系统投产后运维进行动态配置成为可能,从而在数据访问时可以灵活的配置数据表和数据库模式之间的对应关系,即使在访问非默认schema中的数据表时,也可以在访问过程中通过自动替换拼接符的方式得到访问非默认schema所需的目标查询语句,无需研发人员在开发阶段重新编写SQL,降低人力和时间成本,处理过程方便快捷,提高了数据访问的效率。
附图说明
[0036]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据访问方法,其特征在于,所述方法包括:获取数据访问请求,所述数据访问请求中包括待访问数据表的目标数据表标识;根据所述目标数据表标识和映射关系,确定所述待访问数据表所属的目标数据库模式,所述映射关系用于指示数据表和数据库模式之间的映射关系;根据所述目标数据表标识确定所述待访问数据表对应的静态查询语句模板,所述静态查询语句模板中包括所述目标数据表标识和用于修饰所述待访问数据表的拼接符;利用所述目标数据库模式的模式参数替换所述待访问数据表对应的静态查询语句模板中的拼接符,得到目标查询语句;根据所述目标查询语句访问所述待访问数据表。2.根据权利要求1所述的方法,其特征在于,所述根据所述目标数据表标识和映射关系,确定所述待访问数据表所属的目标数据库模式之后,所述方法还包括:确定所述目标数据库模式是否为默认数据库模式;若确定所述目标数据库模式不是默认数据库模式,执行根据所述目标数据表标识确定所述待访问数据表对应的静态查询语句模板的步骤。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:若确定所述目标数据库模式是默认数据库模式,按照预设跳转路径访问所述目标数据库模式中的待访问数据表。4.根据权利要求1

3任一项所述的方法,其特征在于,所述映射关系是通过配置文件的形式或者数据库参数表的形式进行存储的。5.根据权利要求1

3任一项所述的方法,其特征在于,所述获取数据访问请求,包括:通过数据持久层组件拦截所述数据访问请求。6.一种数据访问装置,其特征在于,所述装置包括:获取单元,用于获取数...

【专利技术属性】
技术研发人员:林鑫张国柱张炜
申请(专利权)人:中国银行股份有限公司
类型:发明
国别省市:

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

1