CN110413676A - 数据库的访问方法及其装置、电子设备和介质 - Google Patents

数据库的访问方法及其装置、电子设备和介质 Download PDF

Info

Publication number
CN110413676A
CN110413676A CN201910679775.9A CN201910679775A CN110413676A CN 110413676 A CN110413676 A CN 110413676A CN 201910679775 A CN201910679775 A CN 201910679775A CN 110413676 A CN110413676 A CN 110413676A
Authority
CN
China
Prior art keywords
access
access request
database
jdbc
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910679775.9A
Other languages
English (en)
Other versions
CN110413676B (zh
Inventor
李保昌
梁浩
王丛薇
高志文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN201910679775.9A priority Critical patent/CN110413676B/zh
Publication of CN110413676A publication Critical patent/CN110413676A/zh
Application granted granted Critical
Publication of CN110413676B publication Critical patent/CN110413676B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种数据库的访问方法,由Java数据库连接(JDBC)服务器执行,JDBC服务器与数据库部署在同一网络区域,该方法包括:接收来自应用程序的访问请求数据,其中,访问请求数据是JDBC客户端响应于应用程序针对数据库的访问请求发送的,访问请求数据是JDBC客户端对访问请求中携带的结构化查询语句和访问参数进行加密和/或压缩处理得到的;响应于访问请求数据,从数据库中获取与访问请求数据对应的访问响应数据;以及发送访问响应数据至JDBC客户端,以使应用程序基于来自JDBC客户端的访问响应数据实现针对数据库的访问。本公开还提供了一种数据库的访问装置,应用于JDBC服务器,一种电子设备以及一种计算机可读存储介质。

Description

数据库的访问方法及其装置、电子设备和介质
技术领域
本公开涉及网络技术领域,特别是涉及一种数据库的访问方法及其装置、电子设备和介质。
背景技术
随着金融科技的发展,越来越多的金融单位实施多地多中心的高可用方案,例如,两地三中心、三地四中心。为了实现应用程序在多地同时接入、多园区多活架构部署,需要对应用程序进行优化改造,以降低对集中资源的依赖性。
但是无论如何优化,以金融行业为例,总有一部分一致性要求非常高的数据要求实时共享(比如账务数据),而这些单点数据库仍然无法彻底去除(或改造成本太高),需要多园区的应用程序访问同一个园区的数据库。因此,存在关键数据库的超远距离访问需求。
多园区多活架构中,园区与园区之间的距离相距较远,有的甚至达到了上千公里。网络的延迟和不稳定,对数据库的直接访问带来较大的性能损失和安全隐患,对应用程序的正常运行带来一定的压力。
发明内容
有鉴于此,为了解决现有技术中直接访问超远距离的数据库所带来的性能损失和安全隐患等不稳定问题。本公开提供了一种数据库的访问方法及其装置,电子设备及介质。
为实现上述目的,本公开的一个方面提供了一种数据库的访问方法,由Java数据库连接(JDBC)服务器执行,上述JDBC服务器与上述数据库部署在同一网络区域,上述方法包括:接收来自应用程序的访问请求数据,其中,上述访问请求数据是JDBC客户端响应于上述应用程序针对上述数据库的访问请求发送的,上述访问请求数据是上述JDBC客户端对上述访问请求中携带的结构化查询语句和访问参数进行加密和/或压缩处理得到的,响应于上述访问请求数据,从上述数据库中获取与上述访问请求数据对应的访问响应数据,以及发送上述访问响应数据至上述JDBC客户端,以使上述应用程序基于来自上述JDBC客户端的上述访问响应数据实现针对上述数据库的访问。
根据本公开的实施例,上述响应于上述访问请求数据,从上述数据库中获取与上述访问请求数据对应的访问响应数据包括:响应于上述访问请求数据,执行解密和/或解压缩处理,以获取上述结构化查询语句和上述访问参数,在上述数据库中执行上述结构化查询语句,以获取与上述访问参数匹配的查询数据,以及针对上述查询数据,执行加密和/或压缩处理,以获取上述访问响应数据。
根据本公开的实施例,上述从上述数据库中获取与上述访问请求数据对应的防问响应数据包括:检测上述JDBC客户端是否通过身份认证,以及在上述JDBC客户端通过身份认证的情况下,从上述数据库中获取与上述访问请求数据对应的访问响应数据。
根据本公开的实施例,上述接收来自应用程序的访问请求数据包括:获取上述JDBC服务器和上述JDBC客户端之间网络的第一网络质量参数,检测上述第一网络质量参数是否满足第一预设条件,以及在上述第一网络质量参数满足上述第一预设条件的情况下,通过长连接接收来自应用程序的访问请求数据。
根据本公开的实施例,上述方法还包括:在上述第一网络质量参数不满足上述第一预设条件的情况下,通过短连接接收来自应用程序的访问请求数据。
为实现上述目的,本公开的另一个方面提供了一种数据库的访问方法,由JDBC客户端执行,上述方法包括:接收应用程序发送的针对上述数据库的访问请求,其中,对上述访问请求中携带的结构化查询语句和访问参数,响应于上述访问请求,生成访问请求数据,发送上述访问请求数据至JDBC服务器,以使上述JDBC服务器能响应于上述访问请求数据,从上述数据库中获取与上述访问请求数据对应的访问响应数据,并发送上述访问响应数据至上述JDBC客户端,接收上述访问响应数据,以及发送上述访问响应数据至上述应用程序,以使上述应用程序实现针对上述数据库的访问。
根据本公开的实施例,上述响应于上述访问请求,生成访问请求数据包括:响应于上述访问请求,获取上述结构化查询语句和上述访问参数,以及针对上述结构化查询语句和上述访问参数,执行加密和/或压缩处理,以生成上述访问请求数据。
根据本公开的实施例,上述发送上述访问请求数据至JDBC服务器包括:获取上述JDBC客户端和上述JDBC服务器之间网络的第二网络质量参数,检测上述第二网络质量参数是否满足第二预设条件,以及在上述第二网络质量参数满足上述第二预设条件的情况下,通过长连接发送上述访问请求数据至JDBC服务器。
根据本公开的实施例,上述方法还包括:在上述第二网络质量参数不满足上述第二预设条件的情况下,通过短连接发送上述访问请求数据至JDBC服务器。
为实现上述目的,本公开的另一个方面提供了一种数据库的访问装置,应用于JDBC服务器,上述JDBC服务器与上述数据库部署在同一网络区域,上述装置包括:第一接收模块,被配置为接收来自应用程序的访问请求数据,其中,上述访问请求数据是JDBC客户端响应于上述应用程序针对上述数据库的访问请求发送的,上述访问请求数据是上述JDBC客户端对上述访问请求中携带的结构化查询语句和访问参数进行加密和/或压缩处理得到的,获取模块,被配置为响应于上述访问请求数据,从上述数据库中获取与上述访问请求数据对应的访问响应数据,以及第一发送模块,被配置为发送上述访问响应数据至上述JDBC客户端,以使上述应用程序基于来自上述JDBC客户端的上述访问响应数据实现针对上述数据库的访问。
根据本公开的实施例,上述获取模块包括:第一获取子模块,被配置为响应于上述访问请求数据,执行解密和/或解压缩处理,以获取上述结构化查询语句和上述访问参数,第二获取子模块,被配置为在上述数据库中执行上述结构化查询语句,以获取与上述访问参数匹配的查询数据,以及第三获取子模块,被配置为针对上述查询数据,执行加密和/或压缩处理,以获取上述访问响应数据。
根据本公开的实施例,上述获取模块包括:第一检测子模块,被配置为检测上述JDBC客户端是否通过身份认证,以及第四获取子模块,被配置为在上述JDBC客户端通过身份认证的情况下,从上述数据库中获取与上述访问请求数据对应的访问响应数据。
根据本公开的实施例,上述第一接收模块包括:第五获取子模块,被配置为获取上述JDBC服务器和上述JDBC客户端之间网络的第一网络质量参数,第二检测子模块,被配置为检测上述第一网络质量参数是否满足第一预设条件,以及第一接收子模块,被配置为在上述第一网络质量参数满足上述第一预设条件的情况下,通过长连接接收来自应用程序的访问请求数据。
根据本公开的实施例,上述第一接收模块还包括:第二接收子模块,被配置为在上述第一网络质量参数不满足上述第一预设条件的情况下,通过短连接接收来自应用程序的访问请求数据。
为实现上述目的,本公开的另一个方面提供了一种数据库的访问装置,应用于JDBC客户端,上述装置包括:第二接收模块,被配置为接收应用程序发送的针对上述数据库的访问请求,其中,对上述访问请求中携带的结构化查询语句和访问参数,生成模块,被配置为响应于上述访问请求,生成访问请求数据,第二发送模块,被配置为发送上述访问请求数据至JDBC服务器,以使上述JDBC服务器能响应于上述访问请求数据,从上述数据库中获取与上述访问请求数据对应的访问响应数据,并发送上述访问响应数据至上述JDBC客户端,第三接收模块,被配置为接收上述访问响应数据,以及第三发送模块,被配置为发送上述访问响应数据至上述应用程序,以使上述应用程序实现针对上述数据库的访问。
根据本公开的实施例,上述生成模块包括:第六获取子模块,被配置为响应于上述访问请求,获取上述结构化查询语句和上述访问参数,以及生成子模块,被配置为针对上述结构化查询语句和上述访问参数,执行加密和/或压缩处理,以生成上述访问请求数据。
根据本公开的实施例,上述第二发送模块包括:第七获取子模块,被配置为获取上述JDBC客户端和上述JDBC服务器之间网络的第二网络质量参数,第二检测子模块,被配置为检测上述第二网络质量参数是否满足第二预设条件,以及第三接收子模块,被配置为在上述第二网络质量参数满足上述第二预设条件的情况下,通过长连接发送上述访问请求数据至JDBC服务器。
根据本公开的实施例,上述方法还包括:第三接收子模块,被配置为在上述第二网络质量参数不满足上述第二预设条件的情况下,通过短连接发送上述访问请求数据至JDBC服务器。
为实现上述目的,本公开的另一方面提供了一种电子设备,包括:一个或多个处理器,存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上所述的方法。
为实现上述目的,本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现如上所述的方法。
为实现上述目的,本公开的另一方面提供了一种计算机程序,上述计算机程序包括计算机可执行指令,上述指令在被执行时用于实现如上所述的方法。
由上可见,与现有技术相比,本公开实施例提供的数据库的访问方法及其装置,由JDBC服务器执行,且该JDBC服务器与数据库部署在同一网络区域。通过响应于访问请求数据,从数据库中获取与访问请求数据对应的访问响应数据;以及发送访问响应数据至JDBC客户端,以使应用程序基于来自JDBC客户端的访问响应数据实现针对数据库的访问,可以至少部分地克服相关技术中中直接访问超远距离的数据库所带来的性能损失和安全隐患等不稳定的技术问题。在超远距离场景中,应用服务器访问数据库,采用轻量级的网络连接,只需要进行一次交互即可完成一条请求执行,可以减少网络开销,传输的数据量少,减少网络传输量。此外,可以实现传输加密和认证,安全性提高,提高数据库连接的利用率,减少数据库内存等资源的占用,同时减少“连接风暴”对数据库的风险,避免数据库恶性循环引起雪崩现象。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了本公开实施例的数据库的访问方法和装置的***架构;
图2示意性示出了适用于本公开实施例的数据库的访问方法和装置的应用场景;
图3示意性示出了根据本公开实施例的由JDBC服务器执行的数据库的访问方法的流程图;
图4示意性示出了根据本公开实施例的响应于访问请求数据,从数据库中获取与访问请求数据对应的访问响应数据的流程图;
图5示意性示出了根据本公开实施例的从数据库中获取与访问请求数据对应的访问响应数据的流程图;
图6示意性示出了根据本公开实施例的接收来自应用程序的访问请求数据的流程图;
图7示意性示出了根据本公开实施例的由JDBC客户端执行的数据库的访问的流程图;
图8示意性示出了根据本公开实施例的响应于访问请求,生成访问请求数据的流程图;
图9示意性示出了根据本公开实施例的发送访问请求数据至JDBC服务器的流程图;
图10示意性示出了根据本公开实施例的应用于JDBC服务器的数据库的访问装置的框图;
图11示意性示出了根据本公开实施例的应用于JDBC服务器的数据库的访问装置的框图;
图12示意性示出了根据本公开再一实施例的应用于JDBC客户端的数据库的访问装置的框图;
图13示意性示出了根据本公开再一实施例的应用于JDBC服务器的数据库的访问装置的框图;以及
图14示意性示出了根据本公开实施例的适于实现上文描述的数据库访问方法及装置的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了上述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行***使用或者结合指令执行***使用。
数据大集中之后,企业的经营活动越来越依赖于数据中心与网络等IT基础设施,IT基础设施的7*24全天业务连续运营成为大型企业IT建设运营与企业经营追求的目标。如何实现减少甚至消除正常和非正常的停机对业务可用性造成的影响,不仅是IT建设与运维团队的目标,更成为企业决策层所关注的。
出于灾备的目的,企业一般都会建设两个或多个数据中心。主数据中心承担用户的核心业务,其他的数据中心主要承担一些非关键业务并同时备份主中心的数据、配置、业务等。正常情况下,主中心和备中心各司其职,发生灾难时,主数据中心宕机、备份数据中心可以快速恢复数据和应用,从而减轻因灾难给用户带来的损失。由于灾难是小概率事件,而采用一主一备这种方式,备份数据中心只在灾难发生时才能起到作用,并且随着企业容灾建设标准的提升,备份IT资源和资金会投入越来越大,相互直接又不能够复用,从而造成浪费。另外主备模式的应用,备中心在接替主中心时需要较长的时间、关系复杂,往往会严重影响用户的业务办理。
多园区多活架构中,园区之间距离相距较远,有的达到了上千公里。网络的延迟和不稳定,对数据库的直接访问带来较大的性能损失和安全隐患,对应用程序的正常运行带来一定的压力。
基于此,本公开的实施例提供了一种由Java数据库连接(Java DataBaseConnectivity,简称为JDBC)服务器执行的数据库的访问方法。特别地,该JDBC服务器与数据库部署在同一网络区域,该方法包括:首先,接收来自应用程序的访问请求数据,该访问请求数据是JDBC客户端响应于应用程序针对数据库的访问请求发送的,且访问请求数据是JDBC客户端对访问请求中携带的结构化查询语句和访问参数进行加密和/或压缩处理得到的,接着,响应于访问请求数据,从数据库中获取与访问请求数据对应的访问响应数据,最后发送访问响应数据至JDBC客户端,以使应用程序基于来自JDBC客户端的访问响应数据实现针对数据库的访问。
JDBC由一组用Java语言编写的类和接口组成,是一种用于执行SQL语句的Java应用程序接口(Application Programming Interface,简称API),可以为多种关系数据库提供统一访问。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
相比传统方案,在超远距离场景中,应用服务器访问数据库服务器,采用轻量级的网络连接,只需要进行一次交互即可完成一条请求执行,减少网络开销,传输的数据量少,可以减少网络传输量;实现了传输加密和认证,安全性提高,也可以提高数据库服务器连接的利用率,减少数据库内存等资源的占用,还可以减少“连接风暴”对数据库服务器的风险,避免数据库服务器恶性循环引起雪崩现象。
图1示意性示出了本公开实施例的数据库的访问方法和装置的***架构。需要说明的是,图1所示仅为可以应用本公开实施例的***架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
本公开实施例的数据库的访问方法和装置可以用于“多地多中心”的***架构中。图1仅示出“两地三中心”的***架构100。“两地三中心”是指在同城双活的基础上,增加一个异地数据中心,并与同城双活实现同步,即实现同城双中心加异地一中心的一种商用容灾备份解决方案,兼具高可用性和灾难备份的能力。可以理解,该异地的生产中心用作同城双活/双中心的数据备份。当双中心出现自然灾害等原因发生故障时,异地生产中心可以实现数据的恢复,保证业务正常运行。
“两地三中心”中的“两地”指的是同城和异地。例如,图1中所示的北京同城(包括A地和B地)和上海异地(包括C地)。其中,北京同城的A地与北京同城的B地之间相距55千米,北京同城的A地与上海异地中心的C地之间相距1500千米,北京同城的B地与上海异地中心的C地之间相距1200千米。
“两地三中心”中的“三中心”指的是生产中心、同城双活(容灾)中心以及异地生产中心。例如,图1中所示的位于北京同城A地的生产中心A,位于北京同城B地的同城双活中心B,位于上海异地中心C地的异地生产中心C。其中,生产中心A的功能为核心生产和***运行,同城双活中心B的功能为运行可分离查询交易、运行批量和提供基本服务功能,异地生产中心C的功能是异地生产、灾备、基础技术研发和***、应用版本测试。
在如图1所示的***架构下,“三中心”包括的多个数据中心互为主备关系,即存在主次,业务部署优先级存在差别,针对灾难的响应与切换周期非常长,恢复时间目标(RecoveryTime Object,简称为RTO)与恢复点目标(Recovery Point Object,简称为RPO)无法实现业务零中断,资源利用率低下,投资回报无法达到预期。
RTO指的是将信息***从灾难造成的故障或瘫痪状态恢复到可正常运行状态,并将其支持的业务功能从灾难造成的不正常状态恢复到可接受状态所需的时间,其中包括备份数据恢复到可用状态所需时间、应用***切换时间、以及备用网络切换时间等,该指标用以衡量容灾方案的业务恢复能力。例如,灾难发生后半天内便需要恢复,则RTO值就是十二小时。RPO指的是业务***所允许的灾难过程中的最大数据丢失量(以时间来度量),这是一个灾备***所选用的数据复制技术有密切关系的指标,用以衡量灾备方案的数据冗余备份能力。
下文将以金融行业为例,对本公开进行详细阐述。但需要理解的是,该场景并不是对应用场景的限定。
图2示意性示出了适用于本公开实施例的数据库的访问方法和装置的应用场景。需要注意的是,图2所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
如图2所示,适用于本公开实施例的数据库的访问方法和装置的应用场景200可以包括多个应用程序210、JDBC服务器220和数据库服务器230。
以金融行业为例,总有一部分存储在数据库中的一致性要求非常高的数据要求实时共享,例如,账务数据,而这些单点数据库仍然无法彻底去除(或者改造成本太高)。因此,需要多园区中的多个应用程序210访问一个园区数据库服务器230中的数据,存在关键数据库的超远距离访问需求。
相关技术中,应用程序210直接访问数据库服务器230,虽然已经可以使用数据源连接池进行一定程度的优化,但在超远距离的访问过程中,仍然存在如下缺点:
1.一条结构化查询语言(Structured Query Language,简称为SQL)的执行,数据库驱动和数据库之间需要进行多次交互,使得网络延迟会被放大,进而导致效率低下,影响应用程序210的性能。
2.超远距离的网络环境与本地局域网的网络质量无法比拟,存在较大的不稳定性,网络的抖动会造成连接池中链接的全部清除或出现脏链接,全部清除会造成短时间大量链接创建,影响数据库性能,脏链接会导致应用交易报错,进而影响应用程序210的正常运行。
3.数据库连接利用率较低,会导致数据库端连接的增多,数据库内存等资源占用较多。
4.数据库的性能和效率问题会被放大。数据库性能由于底层、资源等原因稍有变差时,会导致SQL执行时间长,前端应用压力不减的情况下,必然会增加数据库连接,而数据库连接的短时间增加又会影响数据库的性能,形成恶性循环,最终可能会导致雪崩效应,引起***性故障。
本公开提供的数据库的访问方法,通过在应用程序210和数据库服务器230之间增加一层访问代理,即JDBC服务器220,且与数据库服务器230部署在同一个园区,应用程序210可以利用所提供的JDBC客户端接口,通过JDBC服务器220完成对数据库服务器230的访问,避免直接访问数据库服务器230造成的网络延迟等问题。
应该理解,图2中的应用程序、JDBC服务器和数据库服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的应用程序、JDBC服务器和数据库服务器。
以下参考附图并结合具体实施例详细阐述本公开。
图3示意性示出了根据本公开实施例的由JDBC服务器执行的数据库的访问方法的流程图。
根据本公开的实施例,JDBC服务器与数据库服务器部署在一起,可以为前端(应用程序)提供访问数据库服务器的代理服务,同时JDBC服务器支持客户端认证、数据压缩、加密功能,支持负载均衡。如图3所示,该数据库的访问方法可以包括操作S310~操作S330。
首先,在操作S310,接收来自应用程序的访问请求数据。
接下来,在操作S320,响应于访问请求数据,从数据库中获取与访问请求数据对应的访问响应数据。
然后,在操作S330,发送访问响应数据至JDBC客户端,以使应用程序基于来自JDBC客户端的访问响应数据实现针对数据库的访问。
根据本公开的实施例,来自应用程序的访问请求数据是JDBC客户端响应于应用程序针对数据库的访问请求发送的,而访问请求数据是JDBC客户端对访问请求中携带的结构化查询语句和访问参数进行加密和/或压缩处理得到的。
需要说明的是,JDBC客户端作为应用程序访问JDBC服务器的应用编程接口(Application Programming Interface,简称为SDK),可以嵌入在应用程序的内部。JDBC客户端封装了JDBC服务器的访问、压缩、加解密等功能的SDK,为应用程序提供简单的JDBC服务器访问接口,支持长连接和短连接两种访问方式。
通过本公开的实施例,在超远距离的数据库的访问场景中,增加JDBC服务器作为代理服务以缓冲网络压力,响应于来自应用程序的访问请求数据,从数据库中获取与访问请求数据对应的访问响应数据,并发送访问响应数据至JDBC客户端,以使应用程序基于来自JDBC客户端的访问响应数据实现针对数据库的访问,可以实现对数据库服务器的间接访问,提高对数据库服务器物理连接的利用率,减少数据库服务器物理连接的个数,减少数据库服务器的资源占用率,也可以避免数据库服务器由于连接风暴导致性能恶化的问题,还可以至少部分解决超远距离数据库访问由于网络延迟、网络不稳定导致的性能下降和效率低下的问题。
图4示意性示出了根据本公开实施例的响应于访问请求数据,从数据库中获取与访问请求数据对应的访问响应数据的流程图。
如图4所示,前述操作S320可以包括操作S410~操作S430。
在操作S410,响应于访问请求数据,执行解密和/或解压缩处理,以获取结构化查询语句和访问参数。
在操作S420,在数据库中执行结构化查询语句,以获取与访问参数匹配的查询数据。
在操作S430,针对查询数据,执行加密和/或压缩处理,以获取访问响应数据。
根据本公开的实施例,JDBC服务器在接收到来自应用程序的访问请求数据之后,可以首先完成请求数据的还原,获取SQL语句、参数等数据,连接数据库服务器以完成SQL语句执行,并将数据库服务器返回的执行结果,即访问响应数据。然后,进行加密、Gzip压缩处理后,返回给JDBC客户端,可以完成数据的访问调用。
图5示意性示出了根据本公开实施例的从数据库中获取与访问请求数据对应的访问响应数据的流程图。
如图5所示,前述操作S320还可以包括操作S510和操作S520。
在操作S510,检测JDBC客户端是否通过身份认证。
在操作S520,在JDBC客户端通过身份认证的情况下,从数据库中获取与访问请求数据对应的访问响应数据。
根据本公开的实施例,JDBC服务器在接收到来自应用程序的访问请求数据之后,也可以首先完成客户端身份认证,在认证成功之后,可以完成请求数据的还原,获取SQL语句、参数等数据,连接数据库服务器以完成SQL语句执行,并将数据库服务器返回的执行结果,即访问响应数据。然后进行加密、Gzip压缩处理后,返回给JDBC客户端,可以完成数据的访问调用。若认证未成功,则指示该JDBC客户端的身份是不符合认证规则的,不执行后续操作。
通过本公开的实施例,在从数据库中获取与访问请求数据对应的访问响应数据时,还可以对JDBC客户端的身份进行验证,以避免具有非法身份的JDBC客户端对数据库服务器的访问,有效实现对数据库服务器访问安全的维护。
图6示意性示出了根据本公开实施例的接收来自应用程序的访问请求数据的流程图。
如图6所示,前述操作S310可以包括操作S610~操作S640。
在操作S610,获取JDBC服务器和JDBC客户端之间网络的第一网络质量参数。
在操作S620,检测第一网络质量参数是否满足第一预设条件。
在操作S630,在第一网络质量参数满足第一预设条件的情况下,通过长连接接收来自应用程序的访问请求数据。
在操作S640,在第一网络质量参数不满足第一预设条件的情况下,通过短连接接收来自应用程序的访问请求数据。根据本公开的实施例,JDBC服务器和JDBC客户端之间的访问,支持长连接和短连接两种方式,网络质量较高情况下使用长连接,反之使用短连接。因此,可以根据JDBC服务器和JDBC客户端之间网络的第一网络质量参数,确定接收来自应用程序的访问请求数据的网络连接方式。
通过本公开的实施例,根据网络连接质量参数,提供多种连接方式,以接收来自应用程序的访问请求数据,提升用户体验。
图7示意性示出了根据本公开实施例的由JDBC客户端执行的数据库的访问的流程图。
如图7所示,该方法可以包括操作S710~操作S750。
在操作S710,接收应用程序发送的针对数据库的访问请求。
在操作S720,响应于访问请求,生成访问请求数据。
在操作S730,发送访问请求数据至JDBC服务器,以使JDBC服务器能响应于访问请求数据,从数据库中获取与访问请求数据对应的访问响应数据,并发送访问响应数据至JDBC客户端。
在操作S740,接收访问响应数据。
在操作S750,发送访问响应数据至应用程序,以使应用程序实现针对数据库的访问。
根据本公开的实施例,JDBC客户端作为应用程序访问JDBC服务器的SDK,可以嵌入在应用程序内部,响应于接收到的应用程序发送的针对数据库的访问请求,生成访问请求数据,发送访问请求数据至JDBC服务器,接收并发送JDBC服务器返回的访问响应数据至应用程序,以使应用程序实现针对数据库的访问。需要说明的是,访问请求中携带有结构化查询语句和访问参数,以执行一次访问行为。
通过本公开的实施例,利用内嵌于应用程序中的JDBC客户端实现对JDBC服务器的数据发送和接收,可以增加JDBC服务器的缓冲,提高数据库访问的效率。
图8示意性示出了根据本公开实施例的响应于访问请求,生成访问请求数据的流程图。
如图8所示,前述操作S720可以包括操作S810和操作S820。
在操作S810,响应于访问请求,获取结构化查询语句和访问参数。
在操作S820,针对结构化查询语句和访问参数,执行加密和/或压缩处理,以生成访问请求数据。根据本公开的实施例,JDBC客户端在将数据传输给JDBC服务器之前,可以将SQL语句、参数等数据进行Gzip压缩、加密,将数据和认证信息发送给JDBC服务器完成请求调用,将JDBC服务器返回的结果进行解密和压缩处理后,返回应用程序,可以完成整体调用。
通过本公开的实施例,可以实现远程数据库访问的数据加密、安全管控,提高数据的安全等级。
图9示意性示出了根据本公开实施例的发送访问请求数据至JDBC服务器的流程图。
如图9所示,前述操作S730可以包括操作S910~操作S940。
在操作S910,获取JDBC客户端和JDBC服务器之间网络的第二网络质量参数。
在操作S920,检测第二网络质量参数是否满足第二预设条件。
在操作S930,在第二网络质量参数满足第二预设条件的情况下,通过长连接发送访问请求数据至JDBC服务器。
在操作S940,在第二网络质量参数不满足第二预设条件的情况下,通过短连接发送访问请求数据至JDBC服务器。
根据本公开的实施例,JDBC客户端和JDBC服务器之间的访问,支持长连接和短连接两种方式,网络质量较高情况下使用长连接,反之使用短连接。因此,可以根据JDBC客户端和JDBC服务器之间网络的第一网络质量参数,确定发送访问请求数据至JDBC服务器的网络连接方式。
通过本公开的实施例,根据网络连接质量参数,提供多种连接方式,以发送访问请求数据至JDBC服务器,提升用户体验。
图10示意性示出了根据本公开实施例的应用于JDBC服务器的数据库的访问装置的框图。
如图10所示,该装置1000可以包括第一接收模块1010、获取模块1020以及第一发送模块1030。
第一接收模块1010,被配置为执行例如前述操作S310,接收来自应用程序的访问请求数据。其中,访问请求数据是JDBC客户端响应于应用程序针对数据库的访问请求发送的,其中,访问请求数据是JDBC客户端对访问请求中携带的结构化查询语句和访问参数进行加密和/或压缩处理得到的。
获取模块1020,被配置为执行例如前述操作S320,响应于访问请求数据,从数据库中获取与访问请求数据对应的访问响应数据。
第一发送模块1030,被配置为执行例如前述操作S330,发送访问响应数据至JDBC客户端,以使应用程序基于来自JDBC客户端的访问响应数据实现针对数据库的访问。
根据本公开的实施例,上述获取模块包括:第一获取子模块,被配置为响应于上述访问请求数据,执行解密和/或解压缩处理,以获取上述结构化查询语句和上述访问参数,第二获取子模块,被配置为在上述数据库中执行上述结构化查询语句,以获取与上述访问参数匹配的查询数据,以及第三获取子模块,被配置为针对上述查询数据,执行加密和/或压缩处理,以获取上述访问响应数据。
根据本公开的实施例,上述获取模块包括:第一检测子模块,被配置为检测上述JDBC客户端是否通过身份认证,以及第四获取子模块,被配置为在上述JDBC客户端通过身份认证的情况下,从上述数据库中获取与上述访问请求数据对应的访问响应数据。
根据本公开的实施例,上述第一接收模块包括:第五获取子模块,被配置为获取上述JDBC服务器和上述JDBC客户端之间网络的第一网络质量参数,第二检测子模块,被配置为检测上述第一网络质量参数是否满足第一预设条件,以及第一接收子模块,被配置为在上述第一网络质量参数满足上述第一预设条件的情况下,通过长连接接收来自应用程序的访问请求数据。
根据本公开的实施例,上述第一接收模块还包括:第二接收子模块,被配置为在上述第一网络质量参数不满足上述第一预设条件的情况下,通过短连接接收来自应用程序的访问请求数据。
通过本公开的实施例,在超远距离的数据库的访问场景中,增加JDBC服务器作为代理服务以缓冲网络压力,响应于来自应用程序的访问请求数据,从数据库中获取与访问请求数据对应的访问响应数据,并发送访问响应数据至JDBC客户端,以使应用程序基于来自JDBC客户端的访问响应数据实现针对数据库的访问,可以实现对数据库服务器的间接访问,提高对数据库服务器物理连接的利用率,减少数据库服务器物理连接的个数,减少数据库服务器的资源占用率,也可以避免数据库服务器由于连接风暴导致性能恶化的问题,还可以至少部分解决超远距离数据库访问由于网络延迟、网络不稳定导致的性能下降和效率低下的问题。
图11示意性示出了根据本公开实施例的应用于JDBC客户端的数据库的访问装置的框图。
如图11所示,该装置1100可以包括第二接收模块1110、生成模块1120、第二发送模块1130、第三接收模块1140以及第三发送模块1150。
第二接收模块1110,被配置为执行例如前述操作S710,接收应用程序发送的针对数据库的访问请求。其中,访问请求中携带有结构化查询语句和访问参数。
生成模块1120,被配置为执行例如前述操作S720,响应于访问请求,生成访问请求数据。
第二发送模块1130,被配置为执行例如前述操作S730,发送访问请求数据至JDBC服务器,以使JDBC服务器能响应于访问请求数据,从数据库中获取与访问请求数据对应的访问响应数据,并发送访问响应数据至JDBC客户端。
第三接收模块1140,被配置为执行例如前述操作S740,接收访问响应数据。
第三发送模块1150,被配置为执行例如前述操作S750,发送访问响应数据至应用程序,以使应用程序实现针对数据库的访问。
根据本公开的实施例,上述生成模块包括:第六获取子模块,被配置为响应于上述访问请求,获取上述结构化查询语句和上述访问参数,以及生成子模块,被配置为针对上述结构化查询语句和上述访问参数,执行加密和/或压缩处理,以生成上述访问请求数据。
根据本公开的实施例,上述第二发送模块包括:第七获取子模块,被配置为获取上述JDBC客户端和上述JDBC服务器之间网络的第二网络质量参数,第二检测子模块,被配置为检测上述第二网络质量参数是否满足第二预设条件,以及第三接收子模块,被配置为在上述第二网络质量参数满足上述第二预设条件的情况下,通过长连接发送上述访问请求数据至JDBC服务器。
根据本公开的实施例,上述方法还包括:第三接收子模块,被配置为在上述第二网络质量参数不满足上述第二预设条件的情况下,通过短连接发送上述访问请求数据至JDBC服务器。
通过本公开的实施例,利用内嵌于应用程序中的JDBC客户端实现对JDBC服务器的数据发送和接收,可以增加JDBC服务器的缓冲,提高数据库访问的效率。
图12示意性示出了根据本公开再一实施例的应用于JDBC客户端的数据库的访问装置的框图。
如图12所示,该装置1200可以包括压缩处理模块1210、加解密模块1220以及网络连接模块1230。
根据本公开的实施例,JDBC客户端在将访问请求数据传输给JDBC服务器之前,可以通过压缩处理模块1210和加解密模块1220将SQL语句、参数等数据进行Gzip压缩、加密,通过网络连接模块1230将数据和认证信息发送给JDBC服务器完成请求调用,然后在接收到DBC数据库服务器返回的访问响应数据之后,对其进行解密和压缩处理后,返回应用程序,完成整体调用。
图13示意性示出了根据本公开再一实施例的应用于JDBC服务器的数据库的访问装置的框图。
如图13所示,该装置1300可以包括网络连接模块1310、加解密模块1320、压缩处理模块1330、数据库操作模块1340以及认证模块1350。
根据本公开的实施例,JDBC服务器在接收到数据之后,首先通过认证模块1350完成JDBC客户端的客户端身份认证,在认证成功方情况下,调用加解密模块1320和压缩处理模块1330完成访问请求数据的还原,获取SQL语句、参数等数据,连接数据库服务器以完成SQL语句执行,并将数据库服务器库返回的访问响应数据,进行加密、Gzip压缩处理后,返回给JDBC客户端,由数据库操作模块1340完成数据调用。
需要说明的是,数据的访问装置部分的实施例方式与数据的访问方法部分的实施例方式对应类似,并且所达到的技术效果也对应类似,在此不再赘述。
根据本公开的实施例的模块、单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一接收模块1010、获取模块1020、第一发送模块1030、第二接收模块1110、生成模块1120、第二发送模块1130、第三接收模块1140以及第三发送模块1150中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一接收模块1010、获取模块1020、第一发送模块1030、第二接收模块1110、生成模块1120、第二发送模块1130、第三接收模块1140以及第三发送模块1150中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一接收模块1010、获取模块1020、第一发送模块1030、第二接收模块1110、生成模块1120、第二发送模块1130、第三接收模块1140以及第三发送模块1150中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图14示意性示出了根据本公开实施例的适于实现上文描述的数据库访问方法及装置的电子设备的框图。图14示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图14所示,根据本公开实施例的计算机***1400包括处理器1401,其可以根据存储在只读存储器(ROM)1402中的程序或者从存储部分1408加载到随机访问存储器(RAM)1403中的程序而执行各种适当的动作和处理。处理器1401例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1401还可以包括用于缓存用途的板载存储器。处理器1401可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1403中,存储有***1400操作所需的各种程序和数据。处理器1401、ROM1402以及RAM 1403通过总线1404彼此相连。处理器1401通过执行ROM 1402和/或RAM 1403中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1402和RAM 1403以外的一个或多个存储器中。处理器1401也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,***1400还可以包括输入/输出(I/O)接口1405,输入/输出(I/O)接口1405也连接至总线1404。***1400还可以包括连接至I/O接口1405的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1407;包括硬盘等的存储部分1408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1409。通信部分1409经由诸如因特网的网络执行通信处理。驱动器1410也根据需要连接至I/O接口1405。可拆卸介质1411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1410上,以便于从其上读出的计算机程序根据需要被安装入存储部分1408。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1409从网络上被下载和安装,和/或从可拆卸介质1411被安装。在该计算机程序被处理器1401执行时,执行本公开实施例的***中限定的上述功能。根据本公开的实施例,上文描述的***、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1402和/或RAM 1403和/或ROM 1402和RAM 1403以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (13)

1.一种数据库的访问方法,由Java数据库连接(JDBC)服务器执行,所述JDBC服务器与所述数据库部署在同一网络区域,所述方法包括:
接收来自应用程序的访问请求数据,其中,所述访问请求数据是JDBC客户端响应于所述应用程序针对所述数据库的访问请求发送的,所述访问请求数据是所述JDBC客户端对所述访问请求中携带的结构化查询语句和访问参数进行加密和/或压缩处理得到的;
响应于所述访问请求数据,从所述数据库中获取与所述访问请求数据对应的访问响应数据;以及
发送所述访问响应数据至所述JDBC客户端,以使所述应用程序基于来自所述JDBC客户端的所述访问响应数据实现针对所述数据库的访问。
2.根据权利要求1所述的方法,其中,所述响应于所述访问请求数据,从所述数据库中获取与所述访问请求数据对应的访问响应数据包括:
响应于所述访问请求数据,执行解密和/或解压缩处理,以获取所述结构化查询语句和所述访问参数;
在所述数据库中执行所述结构化查询语句,以获取与所述访问参数匹配的查询数据;以及
针对所述查询数据,执行加密和/或压缩处理,以获取所述访问响应数据。
3.根据权利要求1所述的方法,其中,所述从所述数据库中获取与所述访问请求数据对应的访问响应数据包括:
检测所述JDBC客户端是否通过身份认证;以及
在所述JDBC客户端通过身份认证的情况下,从所述数据库中获取与所述访问请求数据对应的访问响应数据。
4.根据权利要求1所述的方法,其中,所述接收来自应用程序的访问请求数据包括:
获取所述JDBC服务器和所述JDBC客户端之间网络的第一网络质量参数;
检测所述第一网络质量参数是否满足第一预设条件;以及
在所述第一网络质量参数满足所述第一预设条件的情况下,通过长连接接收来自应用程序的访问请求数据。
5.根据权利要求4所述的方法,其中,所述方法还包括:
在所述第一网络质量参数不满足所述第一预设条件的情况下,通过短连接接收来自应用程序的访问请求数据。
6.一种数据库的访问方法,由JDBC客户端执行,所述方法包括:
接收应用程序发送的针对所述数据库的访问请求,其中,所述访问请求中携带有结构化查询语句和访问参数;
响应于所述访问请求,生成访问请求数据;
发送所述访问请求数据至JDBC服务器,以使所述JDBC服务器能响应于所述访问请求数据,从所述数据库中获取与所述防问请求数据对应的访问响应数据,并发送所述访问响应数据至所述JDBC客户端;
接收所述访问响应数据;以及
发送所述访问响应数据至所述应用程序,以使所述应用程序实现针对所述数据库的访问。
7.根据权利要求6所述的方法,其中,所述响应于所述访问请求,生成访问请求数据包括:
响应于所述访问请求,获取所述结构化查询语句和所述访问参数;以及
针对所述结构化查询语句和所述访问参数,执行加密和/或压缩处理,以生成所述访问请求数据。
8.根据权利要求6所述的方法,其中,所述发送所述访问请求数据至JDBC服务器包括:
获取所述JDBC客户端和所述JDBC服务器之间网络的第二网络质量参数;
检测所述第二网络质量参数是否满足第二预设条件;以及
在所述第二网络质量参数满足所述第二预设条件的情况下,通过长连接发送所述访问请求数据至JDBC服务器。
9.根据权利要求8所述的方法,其中,所述方法还包括:
在所述第二网络质量参数不满足所述第二预设条件的情况下,通过短连接发送所述访问请求数据至JDBC服务器。
10.一种数据库的访问装置,应用于JDBC服务器,所述JDBC服务器与所述数据库部署在同一网络区域,所述装置包括:
第一接收模块,被配置为接收来自应用程序的访问请求数据,其中,所述访问请求数据是JDBC客户端响应于所述应用程序针对所述数据库的访问请求发送的,所述访问请求数据是所述JDBC客户端对所述访问请求中携带的结构化查询语句和访问参数进行加密和/或压缩处理得到的;
获取模块,被配置为响应于所述访问请求数据,从所述数据库中获取与所述访问请求数据对应的访问响应数据;以及
第一发送模块,被配置为发送所述访问响应数据至所述JDBC客户端,以使所述应用程序基于来自所述JDBC客户端的所述访问响应数据实现针对所述数据库的访问。
11.一种数据库的访问装置,应用于JDBC客户端,所述装置包括:
第二接收模块,被配置为接收应用程序发送的针对所述数据库的访问请求,其中,所述访问请求中携带有结构化查询语句和访问参数;
生成模块,被配置为响应于所述访问请求,生成访问请求数据;
第二发送模块,被配置为发送所述访问请求数据至JDBC服务器,以使所述JDBC服务器能响应于所述访问请求数据,从所述数据库中获取与所述访问请求数据对应的访问响应数据,并发送所述访问响应数据至所述JDBC客户端;
第三接收模块,被配置为接收所述访问响应数据;以及
第三发送模块,被配置为发送所述访问响应数据至所述应用程序,以使所述应用程序实现针对所述数据库的访问。
12.一种电子设备,包括:
一个或多个处理器;以及
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至9中任一项所述的方法。
13.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1至9中任一项所述的方法。
CN201910679775.9A 2019-07-25 2019-07-25 数据库的访问方法及其装置、电子设备和介质 Active CN110413676B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910679775.9A CN110413676B (zh) 2019-07-25 2019-07-25 数据库的访问方法及其装置、电子设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910679775.9A CN110413676B (zh) 2019-07-25 2019-07-25 数据库的访问方法及其装置、电子设备和介质

Publications (2)

Publication Number Publication Date
CN110413676A true CN110413676A (zh) 2019-11-05
CN110413676B CN110413676B (zh) 2022-03-11

Family

ID=68363468

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910679775.9A Active CN110413676B (zh) 2019-07-25 2019-07-25 数据库的访问方法及其装置、电子设备和介质

Country Status (1)

Country Link
CN (1) CN110413676B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111090667A (zh) * 2019-12-04 2020-05-01 北京奇艺世纪科技有限公司 数据处理方法、装置、服务器及存储介质
CN111339552A (zh) * 2020-02-12 2020-06-26 厦门网宿有限公司 一种数据库访问方法及装置
CN111786809A (zh) * 2020-05-11 2020-10-16 北京奇艺世纪科技有限公司 一种客户端软件网络优化方法、***、装置及存储介质
CN112000444A (zh) * 2020-10-27 2020-11-27 财付通支付科技有限公司 数据库事务处理方法、装置、存储介质和电子设备
CN112162996A (zh) * 2020-09-23 2021-01-01 金现代信息产业股份有限公司 站内图编辑器的数据库访问方法与***
CN112364087A (zh) * 2020-11-26 2021-02-12 亚信科技(中国)有限公司 Arm平台的c/c++应用程序访问数据库的方法及***
CN112910980A (zh) * 2021-01-27 2021-06-04 ***股份有限公司 一种数据库访问***和方法
CN113296974A (zh) * 2020-08-31 2021-08-24 阿里巴巴集团控股有限公司 数据库访问方法、装置、电子设备及可读存储介质
CN113688182A (zh) * 2021-10-26 2021-11-23 深圳市明源云科技有限公司 数据库自动切换方法、装置和计算机可读存储介质
WO2024087312A1 (zh) * 2022-10-28 2024-05-02 蚂蚁区块链科技(上海)有限公司 一种数据库访问方法、计算设备和服务器

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546810A (zh) * 2012-01-16 2012-07-04 广州市新信荟智信息产业有限公司 一种数据库的远程访问方法
CN102739560A (zh) * 2011-04-13 2012-10-17 腾讯科技(深圳)有限公司 即时通讯方法、***和装置
CN103365979A (zh) * 2013-07-03 2013-10-23 交通银行股份有限公司 一种基于开放数据库的远距离双中心联机处理方法和***
CN104955171A (zh) * 2014-03-26 2015-09-30 中兴通讯股份有限公司 移动通信网络连接创建的控制方法及装置
CN106209951A (zh) * 2015-05-08 2016-12-07 北京娜迦信息科技发展有限公司 信息传输方法、客户端及服务器
CN106911732A (zh) * 2015-12-22 2017-06-30 阿里巴巴集团控股有限公司 一种网站访问加速方法及装置
CN109525620A (zh) * 2017-09-20 2019-03-26 中移(杭州)信息技术有限公司 一种消息推送***、方法及装置
CN110019484A (zh) * 2018-01-04 2019-07-16 腾讯科技(深圳)有限公司 数据库***及实现方法、管理设备、数据接口设备和介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102739560A (zh) * 2011-04-13 2012-10-17 腾讯科技(深圳)有限公司 即时通讯方法、***和装置
CN102546810A (zh) * 2012-01-16 2012-07-04 广州市新信荟智信息产业有限公司 一种数据库的远程访问方法
CN103365979A (zh) * 2013-07-03 2013-10-23 交通银行股份有限公司 一种基于开放数据库的远距离双中心联机处理方法和***
CN104955171A (zh) * 2014-03-26 2015-09-30 中兴通讯股份有限公司 移动通信网络连接创建的控制方法及装置
CN106209951A (zh) * 2015-05-08 2016-12-07 北京娜迦信息科技发展有限公司 信息传输方法、客户端及服务器
CN106911732A (zh) * 2015-12-22 2017-06-30 阿里巴巴集团控股有限公司 一种网站访问加速方法及装置
CN109525620A (zh) * 2017-09-20 2019-03-26 中移(杭州)信息技术有限公司 一种消息推送***、方法及装置
CN110019484A (zh) * 2018-01-04 2019-07-16 腾讯科技(深圳)有限公司 数据库***及实现方法、管理设备、数据接口设备和介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈艳军等: ""基于Socket长短连接切换的C/S模型设计"", 《电脑知识与技术》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111090667A (zh) * 2019-12-04 2020-05-01 北京奇艺世纪科技有限公司 数据处理方法、装置、服务器及存储介质
CN111339552A (zh) * 2020-02-12 2020-06-26 厦门网宿有限公司 一种数据库访问方法及装置
CN111339552B (zh) * 2020-02-12 2022-05-17 厦门网宿有限公司 一种数据库访问方法及装置
CN111786809A (zh) * 2020-05-11 2020-10-16 北京奇艺世纪科技有限公司 一种客户端软件网络优化方法、***、装置及存储介质
CN113296974A (zh) * 2020-08-31 2021-08-24 阿里巴巴集团控股有限公司 数据库访问方法、装置、电子设备及可读存储介质
CN113296974B (zh) * 2020-08-31 2022-04-26 阿里巴巴集团控股有限公司 数据库访问方法、装置、电子设备及可读存储介质
CN112162996A (zh) * 2020-09-23 2021-01-01 金现代信息产业股份有限公司 站内图编辑器的数据库访问方法与***
CN112000444A (zh) * 2020-10-27 2020-11-27 财付通支付科技有限公司 数据库事务处理方法、装置、存储介质和电子设备
CN112364087A (zh) * 2020-11-26 2021-02-12 亚信科技(中国)有限公司 Arm平台的c/c++应用程序访问数据库的方法及***
CN112910980A (zh) * 2021-01-27 2021-06-04 ***股份有限公司 一种数据库访问***和方法
CN112910980B (zh) * 2021-01-27 2022-11-15 ***股份有限公司 一种数据库访问***和方法
CN113688182A (zh) * 2021-10-26 2021-11-23 深圳市明源云科技有限公司 数据库自动切换方法、装置和计算机可读存储介质
WO2024087312A1 (zh) * 2022-10-28 2024-05-02 蚂蚁区块链科技(上海)有限公司 一种数据库访问方法、计算设备和服务器

Also Published As

Publication number Publication date
CN110413676B (zh) 2022-03-11

Similar Documents

Publication Publication Date Title
CN110413676A (zh) 数据库的访问方法及其装置、电子设备和介质
US11182379B2 (en) DAG based methods and systems of transaction processing in a distributed ledger
EP3676744B1 (en) System and method for providing an interface for a blockchain cloud service
US20160127465A1 (en) Cross-platform data synchronization
US11444783B2 (en) Methods and apparatuses for processing transactions based on blockchain integrated station
CN108376106A (zh) 一种区块链消息反馈方法及***
US20210200750A1 (en) Method and device of processing data for blockchain, and blockchain system
EP3436935A1 (en) Pre-formed instructions for a mobile cloud service
US11200211B2 (en) Method and system for managing mutual distributed ledgers in a system of interconnected devices
US11212175B2 (en) Configuration management for cloud storage system and method
US11900074B2 (en) Method and apparatus for implementing an end-to-end API design and development module integrating with firmwide tools and processes
JP7427169B2 (ja) MaaSプラットフォーム上で大規模トランザクション及びノードアーカイバルをサポートするための共通データベースアーキテクチャ
US20220292012A1 (en) System and method for fully integrated regression & system testing analytics
US20230396590A1 (en) Techniques for bootstrapping across secure air gaps with proxying sidecar
CN108573029A (zh) 一种获取网络访问关系数据的方法、装置及存储介质
TW202301118A (zh) 動態微服務分配機制
US20230393858A1 (en) Techniques for bootstrapping across secure air gaps with static sidecar
CN107438067A (zh) 一种基于mesos容器云平台的多租户构建方法及***
CN112910835B (zh) 基于区块链的配置管理方法、装置、***、设备和介质
CN112565340B (zh) 分布式应用的服务调度方法、装置、计算机***及介质
US20220138220A1 (en) Dedicated replication channels for replicating records between regions
US20230393859A1 (en) Techniques for bootstrapping across secure air gaps with edge device cluster
Tsigkanos et al. Cloud deployment tradeoffs for the analysis of spatially distributed internet of things systems
CN111866171B (zh) 报文处理方法、装置、电子设备和介质
CN112306848B (zh) 微服务***的架构视图生成方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant