一种实现数据库访问的方法和装置的制作方法

文档序号:6429369阅读:93来源:国知局

专利名称::一种实现数据库访问的方法和装置的制作方法
技术领域
:本发明涉及网络通讯
技术领域
,具体涉及一种实现数据库访问的方法和装置。
背景技术
:数据库如informix、oracle等已广泛应用于计算机、通信领域,目前,实现数据库访问的方法主要有两种方法一Client端直接使用标准的SQL语句如ESQL等语句来访问Server端的数据库,即client(客户)端编辑SQL语句,将编辑后的SQL语句传输至Server端的数据库系统,数据库系统执行该SQL语句,并将执行结果传输至用户终端。具体实现过程如附图1所示,在图1中,Client端根据需要编辑各种SQL语句,并将其编辑的SQL语句传输至数据库所在的server(服务器)端。Server端对其接收的SQL语句进行解释、编译、执行,并将最终的执行结果返回给Client端。在上述实现过程中,Client端和Server端之间的数据传输协议可采用多种方式,如TCP/IP(传输控制协议/网际协议)、七号信令等。该方法需要Client端用户在每次访问数据库时,都需要生成SQL语句,尤其在Client端需要使用较为固定的、大量的SQL语句进行数据库访问时,会存在许多重复操作且降低了Client端的反应速度,而且Client端和Server端之间会因为传输大量的、基本相同的SQL语句,而占用大量的网络资源,且出现误码的几率高。方法二Client端通过中间件来访问Server端的数据库。中间件技术能够提供给Client端一些可以调用的固定接口,中间件根据Client端用户提供的关键字如表名、字段名等动态组装成标准的SQL语句,并将该组装的SQL语句传输至Server端。该方法将Client端用户在访问数据库重新生成标准的SQL语句的操作交给中间件来完成,简化了Client端用户的数据库访问操作,但是,在Client端需要使用较为固定的、大量的SQL语句进行数据库访问时,同样会存在方法一中占用大量网络资源、出现误码的几率高等缺点。
发明内容本发明的目的在于,提供一种实现数据库访问的方法和装置,通过对数据库访问语句的注册,在Client端用户进行数据库访问,尤其是使用较为固定的SQL语句进行数据库访问时,实现了简化数据库访问操作、节约网络资源、提高Client端和Server端之间的有效数据传输率,提高通信系统可靠性的目的。为达到上述目的,本发明提供的一种实现数据库访问的方法,包括a、确定预定数据库访问语句的可变部分;b、根据所述预定数据库访问语句及其可变部分在数据库所在的Server(服务器)端对该语句进行注册,并存储相应的注册信息;c、当客户端需要使用所述注册的数据库访问语句进行数据库访问时,将所述注册的数据库访问语句中的可变部分的变量值传输至所述Server端;d、所述Server端根据其存储的注册信息及所述客户端传输来的变量值将对应的数据库访问结果传输至所述客户端。所述可变部分为可变参数、可变参数列表。所述步骤a包括客户端确定预定数据库访问语句中的可变部分,并标识;所述客户端将所述预定数据库访问语句、所述可变部分标识承载于注册请求中,并通过客户端与Server端的接口传输至Server端;所述Server端根据其接收的所述注册请求中承载的信息确定需要注册的数据库访问语句,并确定该数据库访问语句的可变部分。所述步骤a包括客户端根据需要通过客户端与Server端的接口向Server端发送预定数据库访问语句;所述Server端根据需要确定其接收的所述预定数据库访问语句需要进行注册;所述Server端确定所述需要进行注册的数据库访问语句中的可变部分。所述步骤b包括所述Server端确定需要进行注册的数据库访问语句对应的注册标识;所述Server端确定所述注册标识与所述预定数据库访问语句及其可变部分的对应关系,并将所述对应关系作为注册信息存储;所述Server端将注册标识传输至所述客户端。所述注册信息以数据库、配置文件或文本文件的形式存储于存储介质中。所述步骤c包括当客户端需要使用所述预定数据库访问语句进行数据库访问时,将所述预定数据库访问语句中的可变部分对应的变量值和所述注册标识传输至所述Server端。所述的步骤d包括所述Server端根据其存储的注册信息、所述客户端传输来的变量值、注册标识生成对应的数据库访问语句;所述Server端根据所述生成的数据库访问语句将对应的数据库访问结果传输至所述客户端。所述方法还包括所述Server端根据需要主动清除其存储的注册信息。本发明还提供一种实现数据库访问的装置,包括确定可变部分模块确定预定数据库访问语句中的可变部分,并将所述可变部分传输至注册模块;注册模块接收所述确定可变部分模块传输来的可变部分,根据所述预定数据库访问语句及其可变部分在Server端对该语句进行注册,并将相应的注册信息传输至存储注册信息模块;存储注册信息模块接收并存储注册模块传输来的注册信息;传输变量值模块当客户端需要使用所述注册的数据库访问语句进行数据库访问时,将该注册的数据库访问语句中的可变部分的变量值传输至数据库访问模块;数据库访问模块根据所述传输变量值模块传输来的变量值及所述存储注册信息模块中存储的注册信息,获取对应的数据库访问结果,并输出。所述装置还包括注册信息管理模块根据需要将存储注册信息模块中存储的注册信息清除。通过上述技术方案的描述可明显得知,本发明通过将数据库访问语句在Server端进行注册,使Client端用户在进行数据库访问时,将数据库访问语句的可变部分对应的变量值直接传输至Server端即可,避免了Client端用户重复编辑数据库访问语句的操作,节约了Client端的资源、减少了Client端在进行数据库访问时需要传输的数据量,在Client端用户大量使用较为固定的数据库访问语句进行数据库访问时,最大程度的减少了Client端和Server端之间需要传输的数据量及出现误码的几率;本发明可以灵活的由Client端根据需要主动发起注册请求,也可以由Server端确定对数据库访问语句进行注册;本发明的注册信息可以数据库、配置文件、文本文件等形式存储于内存、磁盘等存储介质中,使本发明的技术方案实现灵活;本发明的Server端能够主动清除其存储的注册信息,将Client端不使用的或近期不使用的注册信息释放,以减少冗余的注册信息;本发明提供的数据库访问方法和装置能够应用于各种通信协议中;从而通过本发明提供的技术方案实现了简化数据库访问操作、节约网络资源、减小了Client端对数据库操作的延时,提高通信系统可靠性的目的。图1是现有技术的数据库访问示意图;图2是本发明的实现数据库访问的原理图;图3是本发明的实现数据库访问的流程图1;图4是本发明的实现数据库访问的流程图2;图5是本发明的实现数据库访问的流程图3;图6是本发明的实现数据库访问的装置示意图。具体实施例方式本发明的核心是确定预定数据库访问语句的可变部分,根据预定数据库访问语句及其可变部分在Server端对该语句进行注册,并存储相应的注册信息,当客户端需要使用上述注册的数据库访问语句进行数据库访问时,将该注册的数据库访问语句中的可变部分的变量值传输至Server端,Server端根据其存储的注册信息及客户端传输来的变量值将对应的数据库访问结果传输至客户端。下面基于本发明的核心思想对本发明提供的技术方案做进一步的描述。本发明中,预定数据库访问语句包括各数据库厂商提供的各种标注的SQL语句,如ESQL等。如果Client端经常需要使用较为固定的数据库访问语句进行数据库访问,那么,Client端和Server端之间就会传输大量的、重复的数据,为有效利用网络资源,提高单位时间内Client端和Server端之间传输数据的有效率,本发明采用注册机制来实现数据库访问。本发明采用注册机制实现数据库访问的原理如附图2所示。在图2中,本发明需要分析、确定需要进行注册的预定数据库访问语句中的可变部分,并在Server端对可变部分和该数据库访问语句进行注册,这样,Client端在使用注册过的数据库访问语句进行数据库访问时,可以只传输该数据库访问语句的可变部分对应的变量值,Server端即可根据该变量值和其存储的注册信息确定Client端需要的数据库访问语句,Server端执行其确定的数据库访问语句,并将执行结果返回至Client端。下面通过一个具体的例子对本发明实现数据库访问的原理进行说明。对Client端数据库访问语句SELECTuserNameFROMuserInformation_tableWHEREuserID=100进行注册,确定上述语句的可变部分可以为userName和100,也可以单独为100,如果只将100确定为可变部分,那么,将该数据库访问语句和可变部分进行注册,Client端在使用该注册的语句进行数据库访问时,只需要将变量值如200传输至Server端,Server端即可根据该变量值和注册的语句确定Client端需要使用SELECTuserNameFROMuserInformation_tableWHEREuserID=200进行数据库访问,并执行该语句,将执行结果传输至Client端。通过上述描述可明显看出,本发明对Client端需要使用的数据库访问语句,尤其是对Client端经常需要使用的数据库访问语句进行注册,能够大大减少Client端和Server端之间传输的重复的数据。一般Client端需要使用的预定数据库访问语句为多个,所以本发明在Server端对预定数据库访问语句注册时,其应该存储的注册信息主要包括注册标识、注册的数据库访问语句及其可变部分的对应关系。Server端在注册完成后应该保存对应的注册信息,还应该将该注册语句的注册信息中的注册标识传输给Client端,这样,Client端可以通过注册标识、可变部分的变量值来使Server端明确知道Client端需要进行的数据库访问操作,使Server端执行对应的数据库访问语句。上述注册信息可以在Server端以数据库、配置文件、文本文件等的形式存储,其存放位置非常灵活,如可以将注册信息存储在共享内存、磁盘等存储介质中,以便于Server端对于多应用的共享使用。上述注册标识可以仅仅是存储的注册信息的索引值。本发明中的可变部分包括可变参数和可变参数列表。确定预定数据库访问语句的可变部分可以在Client端完成,也可以在Server端完成,即在Server端对Client端的数据库访问语句进行注册的过程可以由Client端主动引起,也可以由Server端来主动引起。由Client端主动引起注册的方法为Client端确定需要注册的数据库访问语句,并确定该语句的可变部分,将该可变部分进行标识,然后将需要注册的数据库访问语句和其可变部分标识承载于注册请求中,并通过其与Server端的接口向Server端发送注册请求,Server端根据Client端传输来的注册请求中承载的信息确定需要注册的数据库访问语句,并根据可变部分的标识确定可变部分,对该语句进行注册,在注册成功后将该语句对应的注册标识传输给Client端。由Client端主动引起的注册过程可以发生在Client端的初始化阶段,也可以发生在Client端需要使用预定数据库访问语句进行数据库访问之前,如Client端在其初始化时,对所有需要注册的数据库访问语句进行一次性注册操作,或在Client端第一次使用某个预定数据库访问语句时,对该语句进行注册。由Server端主动引起注册过程的方法为Server端根据实际需要确定需要注册的数据库访问语句,确定数据库访问语句中的可变部分,并进行注册,在注册成功后,将各注册语句对应的注册标识传输给Client端。Server端也可以在Client端使用数据库访问语句进行数据库访问时,进行上述注册过程,如Client端使用预定数据库访问语句通过客户端与Server端的接口进行数据库访问时,Server端接收预定数据库访问语句,并自主确定是否需要对其进行注册,如果确定不需要对其进行注册,直接执行该语句,并将执行结果返回给Client端,如果确定需要对其进行注册,则首先确定该语句中的可变部分,然后注册,同时执行该语句,并将对应的注册标识及执行结果返回给Client端。Client端接收到Server端传输来的注册标识时,需要记录该注册标识与注册的SQL语句的对应关系,以方便其在使用注册的SQL语句。通过上述的注册过程后,当Client端需要使用某个预定数据库访问语句进行数据库访问时,Client端可以只将该数据库访问语句中的可变部分对应的变量值和相应的注册标识传输至Server端,Server端接收到变量值和注册标识后,根据其存储的注册信息确定该注册标识对应的注册的数据库访问语句,根据变量值重新组装数据库访问语句,并根据重新组装的数据库访问语句执行数据库访问操作,将执行结果传输至Client端。Server端还可以根据Client端使用注册语句的实际情况对其存储的注册信息进行清除操作,如Server端监测其存储的注册的数据库访问语句的使用情况,在预定时间间隔内如果该语句一直没有被再次使用,则Server端可以主动将该注册信息释放、清除。如果在Server端在清除该注册信息后,Client端又再次使用该注册的数据库访问语句,Server端可以重新对该语句进行注册,并将重新注册后的注册标识再次传输至Client端。本发明的数据库访问的实现方法中Client端与Server端之间的数据传输可采用任何传输协议,如TCP/IP、7号信令等。本发明提供的数据库访问的方法能够很好应用于无线通信中的智能网中,如Client端可以为智能网中的SCP(业务控制点),Server端可以为智能网中的SDP(业务数据点),本发明可以非常有效的减小SCP的数据库操作的延时,在智能网领域中有很好的应用前景。下面结合附图3对本发明的实现数据库访问的技术方案进行详细说明。在图3中,步骤3-1,Client端的应用在Client端进行初始化时,根据Client端的需要确定其需要注册的各SQL语句,并分别确定这些需要注册的SQL语句的可变部分。到步骤3-2,Client端的应用分别将这些需要注册的SQL语句的可变部分进行标识,并分别将需要注册的SQL语句及其可变部分标识承载于注册请求中传输至Server端的应用1。到步骤3-3,Server端的应用1根据接收的各注册请求中承载的需要注册的SQL语句及可变部分标识分别进行注册,并将各注册信息分别存储在Server端。到步骤3-4,Server端的应用1将各SQL语句的注册结果传输至Client端的应用。该注册结果可能是SQL语句注册成功后的注册标识,也可能是SQL语句注册失败的信息。到步骤3-5,Client端的应用分别记录注册成功的各SQL语句及其对应的注册标识。到步骤3-6,当Client端的应用需要使用注册的SQL语句进行数据库访问时,将可变部分的变量值和注册标识传输至Server端的应用2。到步骤3-7,Server端的应用2接收Server端的应用1传输来的变量值和注册标识,并根据上述变量值、注册标识及Server端存储的注册信息,重新组装SQL语句。到步骤3-8,Server端的应用2执行该组装后的SQL语句。到步骤3-9,Server端的应用2将执行的结果返回至Client端的应用。下面结合附图4对本发明的实现数据库访问的技术方案进行详细说明。在图4中,步骤4-1,Client端的应用在需要使用预定的SQL语句进行数据库访问时,发现该SQL语句没有进行注册,Client端确定需要对该SQL语句进行注册,并确定该需要注册的SQL语句的可变部分。到步骤4-2,Client端的应用将上述需要注册的SQL语句的可变部分进行标识,将该需要注册的SQL语句及其可变部分标识承载于注册请求中传输至Server端的应用1。到步骤4-3,Server端的应用1根据接收的注册请求中承载的需要注册的SQL语句及可变部分标识进行注册,并将注册信息存储在Server端。到步骤4-4,Server端的应用1将该SQL语句的注册结果传输至Client端的应用。该注册结果可能是注册成功后的注册标识,也可能是注册失败的信息。到步骤4-5,Client端的应用记录注册成功的上述SQL语句及其对应的注册标识。到步骤4-6,Client端的应用将上述注册的SQL语句的可变部分的变量值和注册标识传输至Server端的应用2。到步骤4-7,Server端的应用2接收Server端的应用1传输来的变量值和注册标识,并根据上述变量值、注册标识及Server端存储的注册信息,重新组装SQL语句。到步骤4-8,Server端的应用2执行该组装后的SQL语句。到步骤4-9,Server端的应用2将执行的结果返回至Client端的应用。下面结合附图5对本发明的实现数据库访问的技术方案进行详细说明。在图5中,步骤5-1,Client端的应用在使用已注册的SQL语句进行数据库访问时,首先确定存储在Client端的该SQL语句对应的注册标识,然后确定该SQL语句的可变部分的变量值。到步骤5-2,Client端的应用注册将上述注册的SQL语句的可变部分的变量值和注册标识传输至Server端的应用2。到步骤5-3,Server端的应用2接收Server端的应用1传输来的变量值和注册标识,并根据上述注册标识及Server端存储的注册信息,确定Server端存储的该注册信息已经被清除。上述清除操作可以是Server端根据其对注册信息的监测主动将预定时间间隔内未使用的注册SQL语句的清除。到步骤5-4,Server端的应用2将注册失败的信息传输至Client端的应用。到步骤5-5,Client端的应用接收到该注册失败的信息,将Client端记录存储的该SQL语句及其对应的注册标识删除。到步骤5-6,Client端的应用确定该SQL语句需要重新进行注册,确定该SQL语句的可变部分,并进行标识,将该需要重新注册的SQL语句及其可变部分标识承载于注册请求中传输至Server端的应用1。到步骤5-7,Server端的应用1根据接收的注册请求中承载的需要注册的SQL语句及可变部分标识进行注册,并将注册信息存储在Server端。到步骤5-8,Server端的应用1将该SQL语句的注册结果传输至Client端的应用。该注册结果可能是注册成功后的注册标识,也可能是注册失败的信息。到步骤5-9,Client端的应用记录注册成功的上述SQL语句及其对应的注册标识。到步骤5-10,Client端的应用将上述重新注册的SQL语句的可变部分的变量值和注册标识传输至Server端的应用2。到步骤5-11,Server端的应用2接收Server端的应用1传输来的变量值和注册标识,并根据上述变量值、注册标识及Server端存储的注册信息,重新组装SQL语句。到步骤5-12,Server端的应用2执行该组装后的SQL语句。到步骤5-13,Server端的应用2将执行的结果返回至Client端的应用。本发明提供的实现数据库访问的装置如附图6所示。在图6中,本发明的实现数据库访问的装置包括确定可变部分模块600、注册模块610、存储注册信息模块620、传输变量值模块630、数据库访问模块640、注册信息管理模块650。确定可变部分模块600可存在于Client端,也可存在于Server端,其主要功能为确定预定数据库访问语句中的可变部分,并将该可变部分传输至注册模块610。当确定可变部分模块600存在于Client端时,该模块可以在Client端进行初始化时,确定需要注册的各SQL语句,并分别确定这些需要注册的SQL语句的可变部分,将这些可变部分分别进行标识,并分别将需要注册的SQL语句及其可变部分标识承载于注册请求中传输至注册模块610。该模块也可以在Client端需要使用SQL语句进行数据库访问前,确定该SQL语句需要进行注册,同时确定该SQL语句的可变部分,将该可变部分进行标识,并将该需要注册的SQL语句及其可变部分标识承载于注册请求中传输至注册模块610。当确定可变部分模块600存在于Server端时,该模块接收Client端传输来的进行数据库访问的SQL语句,根据需要确定该SQL语句需要进行注册,同时确定该SQL语句的可变部分,将这些可变部分分别进行标识,将确定需要注册的SQL语句及其可变部分标识传输至注册模块610。注册模块610的主要功能为接收确定可变部分模块传输来的需要注册的SQL语句及其可变部分标识,并根据该SQL语句及其可变部分标识对该语句进行注册,在注册成功时,将相应的注册信息如注册标识、注册的SQL语句及其可变部分等传输至存储注册信息模块620。存储注册信息模块620的主要功能为接收并存储注册模块610传输来的注册信息。传输变量值模块630的主要功能为当Client端需要使用注册过的SQL语句进行数据库访问时,将该注册的SQL语句的注册标识及其可变部分的变量值传输至数据库访问模块640。数据库访问模块640的主要功能为接收传输变量值模块630传输来的注册标识及其变量值,并根据该注册标识、变量值和存储注册信息模块620中存储的注册信息组装SQL语句,并执行该组装后的SQL语句,同时将执行结果传输至Client端。注册信息管理模块650的主要功能为根据需要将存储注册信息模块620中存储的注册信息清除。清除的原因可以是该注册的SQL语句在预定时间间隔内没有被使用等。虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化。权利要求1.一种实现数据库访问的方法,其特征在于包括a、确定预定数据库访问语句的可变部分;b、根据所述预定数据库访问语句及其可变部分在数据库所在的Server(服务器)端对该语句进行注册,并存储相应的注册信息;c、当客户端需要使用所述注册的数据库访问语句进行数据库访问时,将所述注册的数据库访问语句中的可变部分的变量值传输至所述Server端;d、所述Server端根据其存储的注册信息及所述客户端传输来的变量值将对应的数据库访问结果传输至所述客户端。2.如权利要求1所述的一种实现数据库访问的方法,其特征在于所述可变部分为可变参数、可变参数列表。3.如权利要求1所述的一种实现数据库访问的方法,其特征在于所述步骤a包括客户端确定预定数据库访问语句中的可变部分,并标识;所述客户端将所述预定数据库访问语句、所述可变部分标识承载于注册请求中,并通过客户端与Server端的接口传输至Server端;所述Server端根据其接收的所述注册请求中承载的信息确定需要注册的数据库访问语句,并确定该数据库访问语句的可变部分。4.如权利要求1所述的一种实现数据库访问的方法,其特征在于所述步骤a包括客户端根据需要通过客户端与Server端的接口向Server端发送预定数据库访问语句;所述Server端根据需要确定其接收的所述预定数据库访问语句需要进行注册;所述Server端确定所述需要进行注册的数据库访问语句中的可变部分。5.如权利要求1至4中任一权利要求所述的一种实现数据库访问的方法,其特征在于所述步骤b包括所述Server端确定需要进行注册的数据库访问语句对应的注册标识;所述Server端确定所述注册标识与所述预定数据库访问语句及其可变部分的对应关系,并将所述对应关系作为注册信息存储;所述Server端将注册标识传输至所述客户端。6.如权利要求5所述的一种实现数据库访问的方法,其特征在于所述注册信息以数据库、配置文件或文本文件的形式存储于存储介质中。7.如权利要求5所述的一种实现数据库访问的方法,其特征在于所述步骤c包括当客户端需要使用所述预定数据库访问语句进行数据库访问时,将所述预定数据库访问语句中的可变部分对应的变量值和所述注册标识传输至所述Server端。8.如权利要求7所述的一种实现数据库访问的方法,其特征在于所述的步骤d包括所述Server端根据其存储的注册信息、所述客户端传输来的变量值、注册标识生成对应的数据库访问语句;所述Server端根据所述生成的数据库访问语句将对应的数据库访问结果传输至所述客户端。9.如权利要求1至4中任一权利要求所述的一种实现数据库访问的方法,其特征在于所述方法还包括所述Server端根据需要主动清除其存储的注册信息。10.一种实现数据库访问的装置,其特征在于,所述装置包括确定可变部分模块确定预定数据库访问语句中的可变部分,并将所述可变部分传输至注册模块;注册模块接收所述确定可变部分模块传输来的可变部分,根据所述预定数据库访问语句及其可变部分在Server端对该语句进行注册,并将相应的注册信息传输至存储注册信息模块;存储注册信息模块接收并存储注册模块传输来的注册信息;传输变量值模块当客户端需要使用所述注册的数据库访问语句进行数据库访问时,将该注册的数据库访问语句中的可变部分的变量值传输至数据库访问模块;数据库访问模块根据所述传输变量值模块传输来的变量值及所述存储注册信息模块中存储的注册信息,获取对应的数据库访问结果,并输出。11.如权利要求10所述的一种实现数据库访问的装置,其特征在于,所述装置还包括注册信息管理模块根据需要将存储注册信息模块中存储的注册信息清除。全文摘要本发明提供一种实现数据库访问的方法和装置,其核心为将预定数据库访问语句及其可变部分在数据库所在的Server端进行注册,并存储相应的注册信息,当客户端需要进行数据库访问时,将注册的数据库访问语句中的可变部分的变量值传输至Server端,Server端根据其存储的注册信息及传输来的变量值将对应的数据库访问结果传输至客户端;本发明在Client端用户进行数据库访问、尤其在使用大量较为固定的数据库访问语句进行数据库访问时,避免了Client端用户重复生成数据库访问语句的操作,节约了Client端的资源、减少了Client端和Server端之间需要传输的数据量及出现误码的几率;从而实现了简化数据库访问操作、节约网络资源、减小了Client端对数据库操作的延时,提高通信系统可靠性的目的。文档编号G06F17/30GK1746887SQ20041007992公开日2006年3月15日申请日期2004年9月7日优先权日2004年9月7日发明者梁智章,王玉龙申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1