CN107766393B - 基于数据库的信息处理方法、客户端及服务器 - Google Patents
基于数据库的信息处理方法、客户端及服务器 Download PDFInfo
- Publication number
- CN107766393B CN107766393B CN201610706213.5A CN201610706213A CN107766393B CN 107766393 B CN107766393 B CN 107766393B CN 201610706213 A CN201610706213 A CN 201610706213A CN 107766393 B CN107766393 B CN 107766393B
- Authority
- CN
- China
- Prior art keywords
- data table
- field
- analysis
- server
- database statement
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种基于数据库的信息处理方法、客户端及服务器,应用于客户端中的所述方法包括:根据操作请求,向服务器发送指令消息;其中,所述指令消息至少包括:规则标识及所述操作请求的解析值;接收所述服务器按照所述规则标识对应的解析规则对所述解析值解析生成的数据库语句。这样客户端内的数据库语句并非自动生成的,而是从服务器接收的,避免了客户端自动生成数据库语句导致的操作请求执行响应速率慢、客户端的执行效率低的现象。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于数据库的信息处理方法、客户端及服务器。
背景技术
在数据库应用系统中,应用程序对各类数据的查询是常用的操作之一,但是随着应用场景的越来越复杂,查询语句条件字段中输入的参数根据单纯表查找语句无法获得,需要根据表记录中该字段的枚举值进行计算,动态获取数据抽取的条件。例如要求实现从表TABLE中选取字段NUMBER总量为M的数据,如SELECT*FROM TABLE WHERE NUMBER=M,但数据表TABLE中字段NUMBER的取值只有a、b、c、d,需要通过对a、b、c、d的取值进行计算,从而获得aX1+bX2+cX3+dX4=M(其中X1、X2、X3、X4均为整数)的组合选取方式。
现有技术在实现以上场景时通常分为两步进行,首先在数据库查询语句执行前,通过递归算法在数据库中逐条进行记录的查找,计算出枚举值X1、X2、X3、X4的取值方式;其次根据计算出的结果在数据表中选取相应的记录。以上方式由于采用递归算法进行选取,在查找过程中对数据库资源消耗极大,特别是当这类应用场景并发量增多时,就会造成系统资源紧张,响应效率低及响应延时大。
发明内容
有鉴于此,本发明实施例期望提供基于数据库的信息处理方法、客户端及服务器,能够至少部分解决操作请求的响应时延大,运行效率低的问题。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例第一方面提供一种基于数据库的信息处理方法,应用于客户端中,所述方法包括:
根据操作请求,向服务器发送指令消息;其中,所述指令消息至少包括:规则标识及所述操作请求的解析值;
接收所述服务器按照所述规则标识对应的解析规则对所述解析值解析生成的数据库语句。
基于上述方案,所述指令消息中还包括:数据表标识、选取字段列表及第一解析字段的至少其中之一;其中,所述数据表标识用于指示生成所述数据库语句所需查询的第一数据表;所述选取字段列表包括至少一个第一选取字段;所述第一选取字段为从所述第一数据表选取的字段;所述第一解析字段包括解析值对应的字段;
所述数据表标识、选取字段列表及第一解析字段的至少其中之一,用于所述服务器进行信息校验;
所述接收所述服务器,按照所述规则标识对应的解析规则对所述解析值解析生成的数据库语句,包括:
接收所述服务器在所述信息校验通过之后,生成的所述数据库语句。
基于上述方案,所述指令消息还包括条件字符串和生成策略的至少其中之一;
所述条件字符串用于限定所述数据库语句的附加条件;
所述生成策略用于指示生成所述数据库语句的方式。
基于上述方案,所述方法还包括:
执行所述数据库语句,形成执行结果;
将所述服务器返回所述执行结果;其中,所述执行结果用于所述服务器更新存储在所述服务器的可用资源数量。
本发明实施例第二方面提供一种基于数据库的信息处理方法,应用于服务器,所述方法包括:
接收客户端根据操作请求发送的指令消息,其中,所述指令消息至少包括:规则标识及所述操作请求的解析值;
确定所述规则标识对应的第二数据表;
根据所述解析值查询所述第二数据表,获得查询结果;
根据所述查询结果生成数据库语句;
将所述数据库语句发送给所述客户端。
基于上述方案,所述确定所述规则标识对应的第二数据表,包括:
依据所述规则标识确定出所述第二数据表;
所述方法还包括:
根据所述规则标识确定查询所述第二数据表中的第二选取字段;
根据所述规则标识确定解析的第二解析字段;
所述根据所述解析值查询所述第二数据表,获得查询结果,包括:
以所述解析值与所述第二数据表中的第二解析字段匹配,获得查询数据行;
根据所述第二选取字段,从所述查询数据行中提取所述第二选取字段对应的字段值。
基于上述方案,所述指令消息中还包括:数据表标识、选取字段列表及第一解析字段的至少其中之一;其中,所述数据表标识用于指示生成所述数据库语句所需查询的第一数据表;所述选取字段列表包括至少一个第一选取字段;所述第一选取字段为从所述第一数据表选取的字段;所述第一解析字段包括解析值对应的字段;
所述方法还包括以下至少其中之一:
将所述第一数据表和所述第二数据表进行匹配,获得第一匹配结果;
将所述第一选取字段与所述第二选取字段进行匹配,获得第二匹配结果;
将所述第一解析字段和所述第二解析字段进行匹配,获得第三匹配结果;
根据所述第一匹配结果、所述第二匹配结果及所述第三匹配结果的至少其中之一进行信息校验;
所述根据所述解析值查询所述第二数据表,获得查询结果,包括:
当所述信息校验表明校验通过,则根据所述解析值查询所述第二数据表。
基于上述方案,在所述确定所述规则标识对应的第二数据表之前,所述方法还包括:
根据解析规则,生成链表矩阵;其中,所述链表矩阵包括规则标识、解析字段、数据表标识及选取字段的对应关系;其中,所述第二数据表为所述数据表明指示的其中一个数据表。
基于上述方案,所述方法还包括:
存储资源链表;所述资源链表存储有响应所述操作请求的可用资源数量。
基于上述方案,所述方法还包括:
接收所述客户端发送的执行所述数据库语句的执行结果;
根据所述执行结果,更新所述资源链表。
本发明实施例第三方面提供一种客户端,所述客户端包括:
第一发送单元,用于根据操作请求,向服务器发送指令消息;其中,所述指令消息至少包括:规则标识及所述操作请求的解析值;
第一接收单元,用于接收所述服务器按照所述规则标识对应的解析规则对所述解析值解析生成的数据库语句。
本发明实施例第四方面提供一种服务器,所述服务器包括:
第二接收单元,用于接收客户端根据操作请求发送的指令消息,其中,所述指令消息至少包括:规则标识及所述操作请求的解析值;
确定单元,用于确定所述规则标识对应的第二数据表;
查询单元,用于根据所述解析值查询所述第二数据表,获得查询结果;
生成单元,用于根据所述查询结果生成数据库语句;
第二发送单元,用于将所述数据库语句发送给所述客户端。
本发明实施例提供的基于数据库的信息处理方法、客户端及服务器,客户端将基于操作请求向服务器发送数据库语句,并从服务器接收数据库语句,相对于处理资源和处理能力都相较于服务器若的客户端自行生成数据库语句,本发明实施例中所述客户端能够更快的获取所述数据库语句,且保留更多的处理资源应用于数据库语句的执行等操作,能够提升数据库语句的生成速率,提升操作请求的响应速率,提升客户端的运行效率。
附图说明
图1为本发明实施例提供的第一种基于数据库的信息处理方法的流程示意图;
图2为本发明实施例提供的第二种基于数据库的信息处理方法的流程示意图;
图3为本发明实施例提供的客户端的结构示意图;
图4为本发明实施例提供的服务器的结构示意图;
图5为本发明实施例提供的一种数据库系统的结构示意图;
图6为本发明实施例提供的第三种基于数据库的信息处理方法的流程示意图;
图7为本发明实施例提供的一种内存链表矩阵的示意图;
图8为本发明实施例提供的一种资源链表的示意图;
图9为本发明实施例提供的另一种内存链表矩阵的示意图;
图10为本发明实施例提供的另一种资源链表的示意图;
图11为图10所示的资源链表更新后的示意图;
图12为图11所示的资源链表更新后的示意图;
图13为本发明实施例提供的第四种基于数据库的信息处理方法的流程示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。
实施例一:
如图1所示,本实施例提供一种基于数据库的信息处理方法,应用于客户端中,所述方法包括:
步骤S110:根据操作请求,向服务器发送指令消息;其中,所述指令消息至少包括:规则标识及所述操作请求的解析值;
步骤S120:接收所述服务器按照所述规则标识对应的解析规则对所述解析值解析生成的数据库语句。
本实施例可为应用于客户端中的基于数据库的信息处理方法。所述数据可可包括结构化查询语言(Structured Query Language,SQL)数据库;所述数据库语句可为各种对数据库执行对应操作的操作语句,例如所述数据库语句可包括SQL条件查询语句。
在本实施例中所述客户端将从人机交互接口或其他电子设备接收到所述操作请求;在接收到操作请求之后,所述客户端不直接自己生成所述数据库语句,而是向服务器发送指令消息。所述指令消息至少包括规则标识及操作请求的解析值。所述规则标识可包括所述解析规则的规则编码或所述解析规则的名称,等能够唯一标识所述解析规则的信息。所述解析值可为所述解析规则中限定的解析字段的取值。
例如,所述操作请求,要求从数据表中选取出总量为sum某一操作对象,但数据表中该操作对象对应的可选值供有I个,每一个所述取值为Ai,则需要计算需要通过对Ai的个数Bi进行计算,各个Ai的组合选取方式。此处,所述i的取值为不大于所述I的正整数。在现有技术中可能会由客户端自动通过递归调用等处理方式确定出每一个所述Ai对应的个数Bi,由于客户端自身的局限可能会导致数据库语句生成的效率低等各种问题。在本实施例中所述步骤S110中会将所述sum及操作对象对应的规则标识发送给服务器,由处理能力更加强大的服务器来进行数据库语句的生成。
在步骤S120中将接收所述服务器返回的数据库语句,利用服务器来生成所述数据库语句,相对于处理资源有限,处理能力有限的客户端自动通过递归算法等各种操作,能够更快的获得所述数据库语句,且节省了客户端用于生成所述数据库语句的资源,能够使得所述客户端腾出更多处理资源来执行所述数据库语句或接收所述操作请求,这样一方面能够简化客户端获取所述数据库语句的操作,另一方面能够提升客户端响应所述操作请求的速率,提升响应效率和客户端的运行效率。
所述指令消息中还包括:数据表标识、选取字段列表及第一解析字段的至少其中之一;其中,所述数据表标识用于指示生成所述数据库语句所需查询的第一数据表;所述选取字段列表包括至少一个第一选取字段;所述第一选取字段为从所述第一数据表选取的字段;所述第一解析字段包括解析值对应的字段;所述数据表标识、选取字段列表及第一解析字段的至少其中之一,用于所述服务器进行信息校验。
在本实施例中所述客户端发送的指令消息中不仅包括规则标识和解析值,还将包括数据表标识、第一选取字段和解析值对应的第一解析字段。这里的所述规则标识和所述解析字段的确定,可为所述客户端根据所述操作请求确定的。例如,所述操作请求包括操作指令和操作参数。所述操作参数与所述解析值对应。所述操作指令可用于确定操作类型等与操作相关的参数,还可以用于根据操作指令确定所述规则标识,根据所述规则标识通过查询配置信息或初始化信息确定出与所述规则标识对应的第一选取字段和所述第一解析字段。
在本实施例中通过向所述服务器发送所述指令消息,这样服务器就能够接收到客户端自行根据操作请求确定的规则标识、第一数据表、第一选取字段和第二解析字段。服务器根据规则标识也会自行确定出数据表、需要选取字段和解析字段;若服务器自行确定的数据表称为第二数据表,若服务器自行确定的选取字段称为第二选取字段,服务器自行确定的解析字段称为第二解析字段;这样服务器就能够通过第一数据表和第二数据表的数据表标识的匹配,将第一解析字段和第二解析字段进行匹配,将第一选取字段和第二选取字段进行匹配;形成匹配结果;方便服务器根据所述匹配结果,确定出客户端是否为与服务器利用同一解析规则且属于同一数据库系统的客户端,实现信息校验,以确保数据库操作的安全性。在本实施例中所述信息校验至少利用上述匹配结果完成对客户端的身份校验。
所述步骤S120可包括:接收所述服务器在所述信息校验通过之后,生成的所述数据库语句。为了确保数据库操作安全,在本实施例中将在信息校验之后,生成的数据库语句,显然若客户端没有通过所述信息校验,客户端将会接收不到所述数据库语句,还可能接收到服务器发送的异常提示或异常使用警告等信息。
本实施例所述的信息处理方法,通过在指令消息中携带上述数据表标识、选取字段列表和解析字段,方便服务器进行信息校验,以提高数据库操作的安全性。
所述指令消息还包括条件字符串和生成策略的至少其中之一;
所述条件字符串用于限定所述数据库语句的附加条件;
所述生成策略用于指示生成所述数据库语句的方式。
在本实施例中所述条件字符串可为所述客户端根据操作请求携带的条件参数等确定的。所述生成策略可用于指导服务器生成所述数据库语句的方法。
例如,所述操作请求为购买对通信账号进行充值的请求;所述解析值可为充值金额,若当前充值金额为1530元;而充值卡的面额包括100元、50元和30元这三种;且这些充值卡的有效期分别1年、2年和3年。所述操作请求还请求充值卡的有效期为3年内有效。则所述3年有效则可作为所述附加条件发送给服务器,方便服务器再形成所述数据库语句时,将素数附加条件在所述数据库语句中添加。显然1530元充值金额对应的充值卡的面额与对应面额充值卡数量是有种组合方式的,具体选取哪一种方式,在本实施例中可以通过所述生成策略提供。例如,可利用所述生成策略指示选取的充值卡数量最少策略;该最少策略,使生成的数据库语句在执行过程中,对尽可能利用较少的充值卡进行充值。再比如,当前堆积了大量的50元的充值卡,为了尽快的完成50元的充值卡的出售,所述生成策略可以指示优先选取剩余数量较多的充值卡用于本次出售。
总之,本实施例中所述客户端通过在所述指令消息中携带条件字符串和所述生成策略,可以使服务器生成的数据库语句尽可能的满足操作请求的请求需求,以提升请求完成的满意度。
所述方法还包括:
执行所述数据库语句,形成执行结果;
将所述服务器返回所述执行结果;其中,所述执行结果用于所述服务器更新存储在所述服务器的可用资源数量。
在本实施例中所述客户端将会执行所述数据库语句,执行结果至少分为两种,一种是执行成功,另一种是执行失败。在本实施例中所述客户端会将执行结果返回给所述服务器,方便服务器根据素数执行结果更新执行所述操作请求的可用资源数量。
再以所述充值卡为例,这里的可用资源数量可包括不同面值的充值卡的剩余数量。例如,当前数据库语句包括N张面额为100的充值卡的充值操作,若充值成功了N-M个充值操作,剩余M个均未成功。通过所述充值操作的执行结果返回,方便服务器将面额为100的充值卡的剩余数量减去N-M。此处,所述N和M均为正整数且所述N为大于所述M。
显然本实施例所述客户端通过执行结果的返回,方便所述客户端更新可用资源数量,方便后续服务器提供更好生成的数据库语句更为顺畅的执行。
实施例二:
如图2所示,本实施例提供一种基于数据库的信息处理方法,应用于服务器,所述方法包括:
步骤S210:接收客户端根据操作请求发送的指令消息,其中,所述指令消息至少包括:规则标识及所述操作请求的解析值;
步骤S220:确定所述规则标识对应的第二数据表;
步骤S230:根据所述解析值查询所述第二数据表,获得查询结果;
步骤S240:根据所述查询结果生成数据库语句;
步骤S250:将所述数据库语句发送给所述客户端。
本实施例中所述基于数据库的信息处理方法可为应用于与实施例一提供的客户端对应的服务器中的方法。
所述步骤S210中为将接收客户端发送的指令消息,该指令消息中至少包括规则标识和解析值。所述指令消息是客户端基于操作请求生成的。在本实施例所述的操作请求,同样可包括执行如实施例一所述选取总量为sum的操作对象。
在步骤S220中将根据该规则标识确定查询的第二数据表。在步骤S230中将以该解析值查询所述第二数据表。所述第二数据表中可包括多个数据行和多个数据列,每一个数据行可包括对应于每一个数据列的元素值。查询所述第二数据表可用于将所述解析值与元素值进行匹配,确定所述解析值所在的数据行,这样在步骤S240中可包括:提取该数据行中的一个或多个字段,生成所述数据库语句。当然,具体查询所述第二数据表的方法和生成所述数据库语句的方法有多种,不局限于上述一种。
在步骤S250中会将生成的所述数据库语句发送给客户端,这样就避免了客户端因自从通过递归算法等各种操作,生成数据库语句导致的操作请求响应速率慢及客户端的运行效率低等现象。
所述步骤S220可包括:依据所述规则标识确定出所述第二数据表;
所述方法还包括:
根据所述规则标识确定查询所述第二数据表中的第二选取字段;
根据所述规则标识确定解析的第二解析字段;
所述步骤S230可包括:
以所述解析值与所述第二数据表中的第二解析字段匹配,获得查询数据行;
根据所述第二选取字段,从所述查询数据行中提取所述第二选取字段对应的字段值。
在本实施例中会根据所述规则标识确定查询出第二数据表,且还会确定出第二解析字段和第二选取字段,这样在步骤S230中查询所述第二数据表时,可以直接解析值与第二数据表中的第二解析字段对应的字段值进行匹配,确定出查询数据行,再从该查询数据行中选取出该选取字段对应的字段值作为所述查询结果。在本实施例中所述第二数据表、第二解析字段及第二选取字段都是由服务器发送的,在具体的实现过程中,也可以由所述服务器从客户端接收的。例如,所述指令消息中同时还携带有解析字段和选取字段的信息,那么服务器在接收到所述指令消息的同时,就接收到了所述第二数据表的数据表标识、第二解析字段和第二选取字段;显然不局限于本实施例中所述服务器自定根据所述规则标识的自行操作。但是由所述服务器自行根据规则标识来确定,能够避免客户端出现错误导致的生成的数据库语句的错误,进而导致的操作请求的响应错误现象。
所述指令消息中还包括:数据表标识、选取字段列表及第一解析字段的至少其中之一;其中,所述数据表标识用于指示生成所述数据库语句所需查询的第一数据表;所述选取字段列表包括至少一个第一选取字段;所述第一选取字段为从所述第一数据表选取的字段;所述第一解析字段包括解析值对应的字段;
所述方法还包括以下至少其中之一:
将所述第一数据表和所述第二数据表进行匹配,获得第一匹配结果;
将所述第一选取字段与所述第二选取字段进行匹配,获得第二匹配结果;
将所述第一解析字段和所述第二解析字段进行匹配,获得第三匹配结果;
根据所述第一匹配结果、所述第二匹配结果及所述第三匹配结果的至少其中之一进行信息校验;
所述步骤S230可包括:
当所述信息校验表明校验通过,则根据所述解析值查询所述第二数据表。
在本实施例中所述指令消息中还携带有数据表标识、解析字段及选取字段,携带在指令消息中的数据表标识为第一数据表的标识;携带在指令消息中的解析字段称为第一解析字段;携带在指令消息中的选取字段称为第一选取字段。在本实施例中所述服务器会将自行根据规则标识的第二数据表、第二解析字段和第二选取字段与从指令消息中接收的进行匹配,形成第一匹配结果、第二匹配结果和第三匹配结果。
在根据上述匹配结果的一个或多个确定客户端是否通过信息验证。在本实施例中所述服务器可仅进行数据表的匹配,形成第一匹配结果,步骤S230可在第一匹配结果表明第一数据表和第二数据表为同一数据表时,查询第二数据表。当然,所述服务器可仅进行选取字段的匹配,形成第二匹配结果,步骤S230可在第二匹配结果表明第一选取字段和第二选取字段对应于同样的字段时,查询第二数据表。当然也可是所述服务器可仅进行解析字段的匹配,形成第三匹配结果,步骤S230可在第三匹配结果表明第一解析字段和第二解析字段对应于同样的字段时,查询第二数据表。当然,所述服务器可以进行上述三种匹配的任意两种,再在两个匹配结果均表明匹配成功时,查询第二数据表;也可以是服务器进行上述三种匹配,在三个匹配结果表明均匹配成功时,查询第二数据表。或所述服务器还可以进行三种撇皮,当匹配结果成功的个数满足预设阈值是,查询所述第二数据表。总之,确定所述信息校验是否通过的方法,可以根据预设校验条件来确定,可以包括上述一种或多种方法。
进一步地,在所述确定所述规则标识对应的第二数据表之前,所述方法还包括:
根据解析规则,生成链表矩阵;其中,所述链表矩阵包括规则标识、解析字段、数据表标识及选取字段的对应关系;其中,所述第二数据表为所述数据表明指示的其中一个数据表。
在本实施例中所述服务器在响应指令消息,生成数据库语句之前,需要进行初始化配置等操作。在本实施例中将根据所述解析规则生成链表矩阵。该列表矩阵能够存储规则标识、解析字段、数据表名及选取字段的对应关系。这样,所述服务器可以根据所述解析规则,查询所述链表矩阵就能够获得所述规则标识、第二数据表、第二解析字段和第二选取字段。
作为本实施例的进一步改进,所述方法还包括:
存储资源链表;所述资源链表存储有响应所述操作请求的可用资源数量。
在本实施例中所述服务器中还存储资源链表;该资源链表存储有所述响应所述操作请求的可用资源数量。例如,所述解析值可解析为A*B;若所述A表示操作对象的取值,则所述B表示取值为A的操作对象的个数;所述可用资源链表中存储有各中取值的操作对象的剩余数量。这里的剩余数量可为所述可用资源数量。在本实施例中所述选取字段的字段值可为选取数量,在步骤S230中生成所述数据库语句时可包括:依据所述操作对象查询所述资源链表,若所述资源链表的可用资源数量不小于所述选取数量,则根据该操作对象的取值和选取数量生成所述数据库语句。
所述方法还包括:
接收所述客户端发送的执行所述数据库语句的执行结果;
根据所述执行结果,更新所述资源链表。
由于数据库语句的执行结果,可能是成功的,也可能是失败的,在本实施例中为了精确的更新所述资源链表;所述方法还包括从客户端接收所述执行结果,根据执行结果更新资源链表。
值得注意的是:在本实施例中所述服务器可以将所述链表矩阵和/或所述资源链表都存储在内存中,这样所述服务器的处理器直接可以读取内存中的数据就能够完成所述数据库语句的生成,而不用到闪盘等非内存存储介质中来读取数据。而从内存读取数据相对于从内存以外的存储介质读取数据,具有数据读取效率高的特点,显然这样会加速所述数据库语句的生成,提升所述客户端获得所述数据库语句的速度。
实施例三:
如图3所示,本实施例提供一种客户端,所述客户端包括:
第一发送单元110,用于根据操作请求,向服务器发送指令消息;其中,所述指令消息至少包括:规则标识及所述操作请求的解析值;
第一接收单元120,用于接收所述服务器按照所述规则标识对应的解析规则对所述解析值解析生成的数据库语句。
本实施例所述的客户端可为各种服务终端或移动终端等电子设备。例如,可为进行充值的充值终端,或可用于充值的手机、平板电脑等各种设备。
所述第一发送单元110可对应于客户端的各种发送接口,这里的发送接口可包括有线接口和无线接口。有线接口可包括电缆接口和光缆接口了所述无线接口可包括发送天线等。
所述第一接收单元120可对应于客户端的各种接收接口,这里的接收接口可包括有线接口和无线接口。有线接口可包括电缆接口和光缆接口了所述接收接口可包括接收天线等。
显然本实施例提供的客户端获得的数据库语句并非自动生成的,而是从服务器接收的,这样就节省了客户端自动生成所述数据库语句所需的处理资源和时间,将以更短的时间从服务器接收到数据库语句,从而客户端获取数据库语句的速率,提升客户端响应操作请求的速率并提升客户端的运行效率。
所述指令消息中还包括:数据表标识、选取字段列表及第一解析字段的至少其中之一;其中,所述数据表标识用于指示生成所述数据库语句所需查询的第一数据表;所述选取字段列表包括至少一个第一选取字段;所述第一选取字段为从所述第一数据表选取的字段;所述第一解析字段包括解析值对应的字段;所述数据表标识、选取字段列表及第一解析字段的至少其中之一,用于所述服务器进行信息校验;所述第一接收单元120,具体可用于接收所述服务器在所述信息校验通过之后,生成的所述数据库语句。
再进一步地,所述指令消息还包括条件字符串和生成策略的至少其中之一;所述条件字符串用于限定所述数据库语句的附加条件;所述生成策略用于指示生成所述数据库语句的方式。本实施例中所述条件字符串和生成策略可以参见实施例一,在此就不做详细说明。
再进一步地,所述客户端还包括:
执行单元,用于执行所述数据库语句,形成执行结果;
所述第一发送单元110还用于将所述服务器返回所述执行结果;其中,所述执行结果用于所述服务器更新存储在所述服务器的可用资源数量。
本实施例所述的执行单元可对应于客户端中的处理器或处理电路。所述处理器可包括中央处理器、微处理器、数字信号处理器、应用处理器或可编程阵列等。所述处理电路可包括专用集成电路。所述处理器可通过指定代码的执行完成所述数据语句的执行。所述处理电路可通过向电路施加对应的电信号,实现所述数据库语句的执行。当然所述执行单元的结构还有很多种,在此就不一一举例了。
总之,本实施例提供的客户端能够快速获得数据库语句,能够提升操作请求的响应速率,提升了客户端的运行效率。
实施例四:
如图4所示,本实施例提供一种服务器,所述服务器包括:
第二接收单元210,用于接收客户端根据操作请求发送的指令消息,其中,所述指令消息至少包括:规则标识及所述操作请求的解析值;
确定单元220,用于确定所述规则标识对应的第二数据表;
查询单元230,用于根据所述解析值查询所述第二数据表,获得查询结果;
生成单元240,用于根据所述查询结果生成数据库语句;
第二发送单元250,用于将所述数据库语句发送给所述客户端。
本实施例提供的服务器可与前一实施例提供的客户端组成数据库系统,本实施例所述服务器可为一台或多台,可以集中分布,也可以分散式分布形成分布式系统。
所述第二接收单元210和所述第二发送单元250都可对应于所述服务器的通信接口。所述通信接口可为有线接口或无线接口。所述有线接口可包括电缆接口和光缆接口。所述无线接口可包括收发天线等。
所述确定单元220、查询单元230及生成单元240均可对应于所述服务器内的处理器或处理电路。所述处理器或处理电路的具体结构可以参见前一实施例,在此就不做赘述。
在本实施例中提供的服务器,将根据客户端发送的指令消息来生成数据库语句,提升客户端获得数据库语句的速率,节省客户端用于生成数据库语句的处理资源,提升客户端的运行效率。
进一步地,所述确定单元220,具体用于依据所述规则标识确定出所述第二数据表;所述查询单元230,还用于根据所述规则标识确定查询所述第二数据表中的第二选取字段;根据所述规则标识确定解析的第二解析字段;所述查询单元230将具体用于以所述解析值与所述第二数据表中的第二解析字段匹配,获得查询数据行;根据所述第二选取字段,从所述查询数据行中提取所述第二选取字段对应的字段值。
更近一步地,所述指令消息中还包括:数据表标识、选取字段列表及第一解析字段的至少其中之一;其中,所述数据表标识用于指示生成所述数据库语句所需查询的第一数据表;所述选取字段列表包括至少一个第一选取字段;所述第一选取字段为从所述第一数据表选取的字段;所述第一解析字段包括解析值对应的字段;
所述服务器还包括匹配单元。所述匹配单元可用于执行以下至少其中之一:
将所述第一数据表和所述第二数据表进行匹配,获得第一匹配结果;
将所述第一选取字段与所述第二选取字段进行匹配,获得第二匹配结果;
将所述第一解析字段和所述第二解析字段进行匹配,获得第三匹配结果;
根据所述第一匹配结果、所述第二匹配结果及所述第三匹配结果的至少其中之一进行信息校验;
所述查询单元230具体用于当所述信息校验表明校验通过,则根据所述解析值查询所述第二数据表。
此外,所述服务器还包括配置单元,用于在所述确定所述规则标识对应的第二数据表之前,根据解析规则,生成链表矩阵;其中,所述链表矩阵包括规则标识、解析字段、数据表标识及选取字段的对应关系;其中,所述第二数据表为所述数据表明指示的其中一个数据表。
所述服务器还包括存储单元;所述存储单元用于存储资源链表;所述资源链表存储有响应所述操作请求的可用资源数量。存储单元可包括各种类型的存储介质,可选为内存。
所述第二接收单元210还可用于接收所述客户端发送的执行所述数据库语句的执行结果。所述服务器还包括更新单元;所述更新单元可用于根据所述执行结果,更新所述资源链表。
总之本实施例提供的服务器,接收端发送的指令消息,根据指令消息生成数据库语句发送给客户端,方便客户端快速获得数据库语句并执行对应的数据库语句,以提升操作请求的响应速率,提升客户端的运行效率。
以下结合上述任意实施例提供几个具体示例:
示例一:
如图5所示,本示例提供一种基于SQL数据库的应用系统,包括:
应用程序:安装在客户端;
SQL语句动态生成系统,安装在服务器。
所述应用程序,能够用于向SQL语句动态生成系统发送所需SQL语句,并从所述SQL语句动态生成系统接收可执行的SQL语句。这里的SQL语句可为根据所述所需的SQL语句动态生成的。所述所需SQL语句可对应于前述实施例中的指令消息,该指令消息通过携带解析值和规则标识向SQL语句动态生成系统指示客户端所需的SQL语句。
示例二:
如图6所示,本示例提供一种基于SQL数据库的信息处理方法,包括:
步骤S1:系统初始化。
步骤S2:在应用程序执行该SQL语句过程中,将所需SQL语句上发到SQL语句动态生成系统。
步骤S3:SQL语句动态生成系统获取指令消息后,筛选指令消息中需要处理的字段,并根据该字段以及输入的参数值从对应的链表矩阵中选取满足条件的枚举值组合,组装成可执行的SQL语句反馈应用程序,同时将设置各个枚举值的可用数量以及处理中数量。在本示例中所需处理的字段即为上述第一解析字段;输入的参数值即为该字段对应的解析值。
步骤S4:应用程序执行接收到的SQL语句,并在处理完成后将各个枚举值数据处理成功及失败的数量上发到SQL语句动态生成系统。这里的处理成功及失败的数量即为上述实施例中所述执行结果的组成部分。
步骤S5:SQL语句动态生成系统接收到数据处理结果,根据结果将各枚举值对应的处理中数据更新,并设置各个枚举值可用数量。所述数据处理结果即为前述所述执行结果。这里的枚举值对应于前述的操作对象;所述可用数量可对应于前述实施例中的可用资源数量。
以下分别详细介绍每一个上述步骤:
步骤S1:初始化系统;
为了完成数据库查询语句条件动态生成功能,将SQL语句动态生成系统分成三部分完成系统的初始化工作。
1)、应用程序接入初始化,包括套接字SOCKET链接,指令消息收发的初始化;该部分初始化功能主要包括创建服务端监听端口、服务监听队列初始化。创建服务端监听端口包括:创建SOCKET监听端口,通过绑定客户端端口,用于监听连接风险控制服务中心的传输控制协议(Transmission Control Protocol,TCP)请求。服务监听队列初始化包括:客户端连接句柄,规则编号,消息读写存储队列。
2)SQL语句分析拼装功能初始化
针对不同应用程序分别配置解析规则;所述解析规则包括解析策略和数据库语句拼装的拼装策略。初始化中包括规则标识、数据表标识、选取字段列表(在示例中全部以$LIST表示)、解析字段、解析字段最大取值、常规语句条件(在示例中全部以$CONDITION1表示)。这里的常规条件语句可对应于前述的附加条件。
3)动态解析功能初始化
根据解析字段规则,生成解析字段所对应的链表矩阵,在本示例中所述链表矩阵存储在内存中故可称为内存链表矩阵。所述链表矩阵包括字段枚举值及所需数量。解析字段取值范围要求大于等于解析字段对应的枚举值最小取值,小于等于解析字段最大取值。生成内存链表矩阵时,解析字段取值步长为该字段枚举值的最大公约数。
内存矩阵链表存储方式为:内存矩阵链表对应数据表标识,查询条件值组合链表,枚举值资源链表;查询条件值组合链表的头节点为查询条件。
例如:数据表TABLE中解析字段NUMBER的枚举值为a,b,c,d,其中a,b,c,d的最大公约数为Ω,解析字段NUMBER所需提供的总量是M,M的取值范围为A<=M<=B,其中A=MIN(a,b,c,d),B代表解析字段最大取值,则内存链表矩阵中查询条件值组合链表的头节点取值为A、A+Ω、A+2Ω……A+nΩ、B。链表节点为((a,n1),(b,n2),(c,n3),(d,n4)),表示需要n1个a、n2个b、n3个c和n4个d才能组合出需要的查询条件值M,即n1a+n2b+n3c+n4d=M。图7所示的即为所述表TABLE的具体示例。图8为对应于图7的资源链表。
步骤S2:应用程序在执行SQL语句时,由应用程序实现将需要的SQL语句拼装成指令消息,并通过SOCKET接口发送到SQL语句动态生成系统,并等待SQL语句动态生成系统的反馈结果。指令消息的数据格式可为:规则标识、数据表标识、选取字段列表、解析字段、解析值、枚举值选取方式、附加常规条件字符串(本文中全部以$CONDITION2表示)。这里的枚举值选取方式可为前述生成策略的一种。所述附加常规条件字符串可为前述实施例中的附加条件。结合图7和图8说明枚举值选取方式,所述枚举值选取方式可包括:n1+n2+n3+n4最小值取值和n1+n2+n3+n4最大取值两种方式。
步骤S3:SQL语句动态生成系统接收到应用系统发送的指令消息,获取指令消息中携带的规则标识、数据表标识、选取字段列表、解析字段、解析值、附加常规条件字符串等信息,并根据规则标识、数据表标识、解析字段、解析值获取解析规则所对应的链表,其中对于规则标识、数据表标识、解析字段均要求完全一致。如果不一致,则直接向客户端反馈错误;如果一致,则通过规则标识查找内存链表矩阵,并依据内存矩阵链表头中存储的查找条件值查找与消息中携带的解析值对应的一列,如果未找到,则返回失败;如果找到,则根据后续链表节点的枚举值组合方式,根据传入的枚举值选取方式选择数据。选择数据时,需要校验每个枚举值的可用量,当某个枚举值可用量不可用时,则该类枚举值不进行选取。
确定不同枚举值的选取数量后,根据系统配置的常规条件以及消息内附加常规条件拼装SQL语句,具体方法如下:
根据SQL语句动态系统传入的数据表标识、解析字段以及选取的枚举值数量,以图7和图8为例,系统选取的枚举值取值为((a,n1),(b,n2),(c,n3),(d,n4)),则生成的初始语句为:
SELECT$LIST FROM TABLE WHERE NUMBER=a AND ROWNUM=n1;
SELECT$LIST FROM TABLE WHERE NUMBER=b AND ROWNUM=n2;
SELECT$LIST FROM TABLE WHERE NUMBER=c AND ROWNUM=n3;
SELECT$LIST FROM TABLE WHERE NUMBER=d AND ROWNUM=n4;
然后再根据常规语句条件和附加常规条件字符串进行完整语句的拼装,拼装后语句为:
SELECT$LIST FROM TABLE WHERE NUMBER=a AND ROWNUM=n1 and$CONDITION1and$CONDITION2;
SELECT$LIST FROM TABLE WHERE NUMBER=b AND ROWNUM=n2 and$CONDITION1and$CONDITION2;
SELECT$LIST FROM TABLE WHERE NUMBER=c AND ROWNUM=n3 and$CONDITION1and$CONDITION2;
SELECT$LIST FROM TABLE WHERE NUMBER=d AND ROWNUM=n4 and$CONDITION1and$CONDITION2;
生成语句后,更新枚举值资源链表a、b、c、d当前可用量和处理中数量,执行操作如下:
a当前可用量=a当前可用量-n1;
b当前可用量=b当前可用量-n2;
c当前可用量=c当前可用量-n3;
d当前可用量=d当前可用量-n4;
a处理中数量=a当前可用量+n1;
b处理中数量=b当前可用量+n2;
c处理中数量=c当前可用量+n3;
d处理中数量=d当前可用量+n4;
通过验证指令消息反馈指令向应用程序反馈拼装后的完整SQL语句;
步骤S4:应用程序获取SQL语句后,执行SQL语句。当应用程序使用完所选取的数据后,程序将不同枚举值数据处理结果通过操作结果反馈接口发送给SQL语句动态生成系统,发送消息格式为规则标识、数据表标识、解析字段、执行结果(枚举值、数量、执行情况)。其中执行结果中枚举值对应的数量和执行情况可以为多个。以步骤S3中数据为例,客户端分别处理(a,(N1,成功),(n1-N1,失败))、(b,(N2,成功),(n2-N2,失败))、(c,(N3,成功),(n3-N3,失败))、(d,(N4,成功),(n4-N4,失败))。
步骤S5:SQL语句动态生成系统获取数据执行情况后,根据规则标识、数据表标识、解析字段获取对应的内存链表矩阵,并更新资源链表的各个枚举值的可用数量,处理中数量以及已使用量。
a当前可用量=a当前可用量+(n1-N1);
b当前可用量=b当前可用量+(n2-N2);
c当前可用量=c当前可用量+(n3-N3);
d当前可用量=d当前可用量+(n4-N4);
a处理中数量=a处理中数量-N1;
b处理中数量=b处理中数量-N2;
c处理中数量=c处理中数量-N3;
d处理中数量=d处理中数量-N4;
a已经使用量=a已经使用量+N1
b已经使用量=b已经使用量+N2
c已经使用量=c已经使用量+N3
d已经使用量=d已经使用量+N4
进一步的,所述步骤S1、步骤S2和步骤S3、步骤S5中的如何实现数据库语句条件动态生成的功能,需要完成如下操作:
SQL语句动态生成系统初始化时,需要根据查询条件对应解析字段所包含的所有枚举值,以及查询条件可以支持输入参数的取值范围在内存中生成内存链表矩阵,以便支持内存方式快速查找功能。这里的查询条件可包括所述解析值。
不同应用程序封装需要上发SQL语句动态生成系统获取执行SQL的方法,并在业务逻辑中实现方法的调用,并将解析请求上发到SQL语句动态生成系统。
SQL语句动态生成系统获取应用程序发送的解析请求,将消息缓存到消息队列,并对消息进行解析。
根据解析后的数据表标识在系统各个内存链表矩阵中进行查找,获取该数据表标识对应的内存链表矩阵,并根据查询条件值M在内存链表矩阵中找到链表头节点为M的数据后,依次查找满足要求的组合情况,获取不同枚举值以及需要的数量;
根据查询的结果,并结合解析消息以及系统配置,动态生成可供应用程序执行的SQL语句,并将语句反馈给应用程序,并更新枚举值资源链表。
示例三:
本示例基于上述实施例及示例还提供了一种基于业务级数据库查询语句条件动态生成方法,包括:
不同应用程序接入SQL语句动态生成系统时,需要在原有功能中集成SQL语句上发功能,实现与SQL语句动态生成系统通过TCP/IP协议交互,并进行SQL语句上发功能初始化。
在应用程序运行过程中,如果对应的SQL查询语句需要进行语句重新生成,则将规则标识、数据表标识、选取字段列表、解析字段、解析值、枚举值选取方式、附加常规条件字符串发送到SQL语句动态生成系统,并等待SQL语句动态生成系统反馈结果后,依据反馈结果进行数据库操作;为了实现上述功能,SQL语句上发功能需要实现以下关键环节。
应用程序在编写时,需要针对动态生成SQL语句的逻辑进行单独的实现,当业务运行过程中调用该逻辑时,将关键信息发送到SQL语句动态生成系统,并等待SQL语句动态生成系统的反馈。
与SQL语句动态生成系统通信的协议基于可扩展标记语言XML通信协议,具体定义如下:
验证指令消息,主要包含以下字段:
规则标识、数据表标识、选取字段列表、解析字段、解析值、枚举值选取方式、附加常规条件字符串。
<ORIG>应用编号</ORIG>--解析规则
<HOME>SQLSYSTEM</HOME>--SQL语句动态生成系统
<opr_type>1</opr_type>--操作类型,1表示验证请求
<DATEBASEOPR>--数据表相关
<TABLENAME>TABLE</TABLENAME>--存放数据表名称
<LIST>$LIST</LIST>
<FIELD>NUMBER</FIELD>--解析字段
<VALUE>M</VALUE>--查询条件值
<OPR_MODE>1</OPR_MODE>--枚举值选取方式1:最小值取值、0:最大值取值
<OTHER>$CONDITION2</OTHER>--附加常规条件字符串
</DATEBASEOPR>
验证指令消息反馈指令:
<ORIG>SQLSYSTEM</ORIG>--SQL语句动态生成系统
<HOME>规则标识</HOME>--规则标识
<NUM>H</NUM>--H表示动态生成的SQL语句数量
<SQL>--SQL语句
<TABLENAME>TABLE</TABLENAME>--存放数据表名称
<FIELD>NUMBER</FIELD>--解析字段
<VALUE>a1</VALUE>--数据表中可用的枚举值
<COUNT>n1</COUNT>--该枚举值数据使用数量
<SQLSTATS>SELECT$LIST FROM TABLE WHERE NUMBER=a1 AND$CONDITION1and$CONDITION2AND ROWNUM=n1
</SQLSTATS>--拼装后的SQL语句
</SQL>
……
<SQL>--SQL语句
<TABLENAME>TABLE</TABLENAME>--存放数据表名称
<FIELD>NUMBER</FIELD>--解析字段
<VALUE>aH</VALUE>--数据表中可用的枚举值
<COUNT>nH</COUNT>--该枚举值数据使用数量
<SQLSTATS>SELECT$LIST FROM TABLE WHERE NUMBER=aH AND$CONDITION1and$CONDITION2AND ROWNUM=nH
</SQLSTATS>--拼装后的SQL语句
</SQL>
SQL语句动态生成系统收到指令消息后,先对指令消息进行解析,解析完成后确定数据表标识,并根据数据表标识在内存链表中查找该数据表标识对应的链表矩阵,并选取矩阵中对应的枚举值组合。
例如:应用程序要求数据表TABLE的解析字段NUMBER取值范围为30至80之间,并依据数据表TABLE中枚举值选取方式按照最小值取值选取,但是数据表TABLE中NUMBER字段的取值为只有10、30和50的数据(最大公约数数是10),每类取值对应的条数分别为10条、8条和16条。当应用程序选取数值为80,并且枚举值选取方式为最小值取值。
图9为本示例中提供的一种内存链表矩阵的示意图;图10为本实施例提供的一种资源链表的示意图。
以下基于图9和图10进行SQL语句的生成,包括:
SQL语句动态解析系统接收到验证指令消息指令:
<ORIG>0001</ORIG>
<HOME>SQLSYSTEM</HOME>
<opr_type>1</opr_type>
<DATEBASEOPR>
<TABLENAME>TABLE</TABLENAME>
<LIST>$LIST</LIST>
<FIELD>NUMBER</FIELD>
<VALUE>80</VALUE>--查询条件值
<OPR_MODE>1</OPR_MODE>--枚举值选取方式1:最小值取值、0:最大值取值。
<OTHER>$CONDITION2</OTHER>--附加常规条件字符串
</DATEBASEOPR>
即当查询条件值为80时,SQL语句动态生成系统自动定位到首节点为80的链表节点,并且依次查找可选择的枚举值,由于本次查找要求遵照最小值取值进行枚举值的选取,所以选取枚举值为((50,1),(30,1))的组合,即选取一条NUMBER为50的记录和一条NUMBER为30的记录,共两条记录,而其他记录的选取方式记录总数均大于两条,故不进行选取。
系统自动拼装两条SQL语句,示例如下:
SELECT$LIST FROM TABLE WHERE NUMBER=50 AND$CONDITION1 AND$CONDITION2AND ROWNUM=1;
语句解释:从表TABLE中选取一条NUMBER为50,并且条件满足$CONDITION1和$CONDITION2的记录;
SELECT$LIST FROM TABLE WHERE NUMBER=30 AND$CONDITION1 AND$CONDITION2AND ROWNUM=1;
语句解释:从表TABLE中选取一条NUMBER为30,并且条件满足$CONDITION1和$CONDITION2的记录。
SQL语句拼装完成后,系统更新枚举值可用数量以及处理中数量,更新后的资源链表如图11所示。对比图10和图11可知,取值为30和50的资源链表发生了变化。
接收客户端的执行结果,该执行结果可包括如下内容:
<ORIG>SQLSYSTEM</ORIG>
<HOME>0001</HOME>
<NUM>2</NUM>
<SQL>
<TABLENAME>TABLE</TABLENAME>
<FIELD>NUMBER</FIELD>
<VALUE>50</VALUE>
<COUNT>1</COUNT>
<SQLSTATS>SELECT$LIST FROM TABLE WHERE NUMBER=50 AND$CONDITION1AND$CONDITION2AND ROWNUM=1;
</SQLSTATS>
</SQL>
<SQL>
<TABLENAME>TABLE</TABLENAME>
<FIELD>NUMBER</FIELD>
<VALUE>30</VALUE>
<COUNT>1</COUNT>
<SQLSTATS>SELECT$LIST FROM TABLE WHERE NUMBER=50 AND$CONDITION1AND$CONDITION2AND ROWNUM=1;
</SQLSTATS>
</SQL>
应用程序接收到SQL语句后,执行SQL语句所筛选出来的数据处理操作,并将各类枚举值数据的处理情况发送给SQL语句动态生成系统;处理结果遵循XML语言,具体定义如下:
操作结果反馈接口,主要包括:
<ORIG>规则编号</ORIG>--动态解析规则
<HOME>SQLSYSTEM</HOME>--SQL语句动态生成系统
<opr_type>2</opr_type>--操作类型,2标示操作结果更新
<SQL>
<TABLENAME>TABLE</TABLENAME>--存放数据表名称
<FIELD>NUMBER</FIELD>--动态解析字段
<VALUE>a1</VALUE>--枚举值
<TOTAL>n1</TOTAL>--总操作量
<SUCCESS>N1</SUCCESS>--操作成功数量
</SQL>
……
<SQL>
<TABLENAME>TABLE</TABLENAME>--存放数据表名称
<FIELD>NUMBER</FIELD>--动态解析字段
<VALUE>an</VALUE>--枚举值
<TOTAL>nn</TOTAL>--总操作量
<SUCCESS>Nn</SUCCESS>--操作成功数量
</SQL>
以第3点中示例为例,如果操作结果反馈接口收到如下消息:
<ORIG>0001</ORIG>
<HOME>SQLSYSTEM</HOME>
<opr_type>2</opr_type>
<SQL>
<TABLENAME>TABLE</TABLENAME>
<FIELD>NUMBER</FIELD>
<VALUE>50</VALUE>
<TOTAL>1</TOTAL>
<SUCCESS>1</SUCCESS>
</SQL>
<SQL>
<TABLENAME>TABLE</TABLENAME>
<FIELD>NUMBER</FIELD>
<VALUE>30</VALUE>
<TOTAL>1</TOTAL>
<SUCCESS>0</SUCCESS>
</SQL>
执行之后,再次更新所述资源链表,更新后的资源链表可参见图12。图12中阴影框表示的部分即为有更新的部分。
示例四:
如图13所示,本示例基于前述实施例提供一中基于数据库的信息处理方法,包括:
步骤S11:客户端初始化;
步骤S12:服务器初始化内存链表矩阵;
步骤S13:客户端向服务器发送携带有指令消息的解析请求。
步骤S14:服务器在内存链表矩阵中选择可用枚举值;
步骤S15:服务器根据选取的枚举值生成数据库语句;
步骤S16:服务器将所述数据库语句发送给客户端。
步骤S17:客户端执行所述数据库语句。
步骤S18:客户端将执行结果通知给服务器。
步骤S19:服务器更新资源链表。
步骤S20:服务器将更新结果同步给客户端。
本示例所述数据库可为SQL数据库。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种基于数据库的信息处理方法,其特征在于,应用于客户端中,所述方法包括:
根据操作请求,向服务器发送指令消息;其中,所述指令消息至少包括:规则标识、数据表标识、所述操作请求的解析值、选取字段列表及第一解析字段;所述数据表标识用于指示生成数据库语句所需查询的第一数据表;所述选取字段列表包括至少一个第一选取字段;所述第一选取字段为从所述第一数据表选取的字段;所述数据表标识、选取字段列表及第一解析字段的至少其中之一,用于所述服务器进行信息校验;所述指令消息还包括条件字符串和生成策略;所述条件字符串用于限定所述数据库语句的附加条件,所述条件字符串为所述客户端根据操作请求携带的条件参数确定的;所述生成策略用于指示生成所述数据库语句的方式,所述数据库语句表示选取不同面值的充值卡的数量组合;所述第一解析字段为充值卡不同面值的枚举字段,所述解析值为所述充值卡不同面值的充值总额,所述充值卡不同面值的充值总额对应为所述第一解析字段的取值总和;
接收所述服务器生成的数据库语句;其中,所述数据库语句是:在所述信息校验通过之后,所述服务器通过查询根据解析规则确定的规则标识对应的第二数据表得到的查询结果生成的;执行所述数据库语句,形成执行结果;
将所述执行结果返回所述服务器;其中,所述执行结果用于所述服务器更新资源链表,所述资源链表存储有响应所述操作请求的可用资源数量;其中,所述可用资源数量为不同面值充值卡的数量。
2.根据权利要求1所述的方法,其特征在于,所述解析规则,用于生成链表矩阵;其中,所述链表矩阵包括规则标识、解析字段、数据表标识及选取字段的对应关系;所述规则标识,用于标识所述第二数据表。
3.一种基于数据库的信息处理方法,其特征在于,应用于服务器,所述方法包括:
接收客户端根据操作请求发送的指令消息,其中,所述指令消息至少包括:规则标识、数据表标识、所述操作请求的解析值、选取字段列表及第一解析字段;所述数据表标识用于指示生成数据库语句所需查询的第一数据表;所述选取字段列表包括至少一个第一选取字段;所述第一选取字段为从所述第一数据表选取的字段;所述指令消息还包括条件字符串和生成策略的至少其中之一,用于所述服务器进行信息校验;所述条件字符串用于限定所述数据库语句的附加条件,所述条件字符串为所述客户端根据操作请求携带的条件参数确定的;所述生成策略用于指示生成所述数据库语句的方式,所述数据库语句表示选取不同面值的充值卡的数量组合;所述第一解析字段为充值卡不同面值的枚举字段,所述解析值为所述充值卡不同面值的充值总额,所述充值卡不同面值的充值总额对应为所述第一解析字段的取值总和;
所述服务器在所述信息校验通过之后,通过查询根据解析规则确定的规则标识对应的第二数据表得到的查询结果生成数据库语句,包括:
确定所述规则标识对应的第二数据表;根据所述解析值查询所述第二数据表,获得查询结果;根据所述查询结果生成数据库语句;
将所述数据库语句发送给所述客户端;
接收所述客户端发送的执行所述数据库语句的执行结果;
根据所述执行结果,更新资源链表;其中,所述资源链表存储有响应所述操作请求的可用资源数量,所述可用资源数量为不同面值充值卡的数量。
4.根据权利要求3所述的方法,其特征在于,
所述确定所述规则标识对应的第二数据表,包括:
依据所述规则标识确定出所述第二数据表;
所述方法还包括:
根据所述规则标识确定查询所述第二数据表中的第二选取字段;
根据所述规则标识确定解析的第二解析字段;
所述根据所述解析值查询所述第二数据表,获得查询结果,包括:
以所述解析值与所述第二数据表中的第二解析字段匹配,获得查询数据行;
根据所述第二选取字段,从所述查询数据行中提取所述第二选取字段对应的字段值。
5.根据权利要求4所述的方法,其特征在于,
所述方法还包括以下至少其中之一:
将所述第一数据表和所述第二数据表进行匹配,获得第一匹配结果;
将所述第一选取字段与所述第二选取字段进行匹配,获得第二匹配结果;
将所述第一解析字段和所述第二解析字段进行匹配,获得第三匹配结果;
根据所述第一匹配结果、所述第二匹配结果及所述第三匹配结果的至少其中之一进行信息校验;
所述根据所述解析值查询所述第二数据表,获得查询结果,包括:
当所述信息校验表明校验通过,则根据所述解析值查询所述第二数据表。
6.根据权利要求3、4或5所述的方法,其特征在于,
在所述确定所述规则标识对应的第二数据表之前,所述方法还包括:
根据解析规则,生成链表矩阵;其中,所述链表矩阵包括规则标识、解析字段、数据表标识及选取字段的对应关系;所述规则标识,用于标识所述第二数据表。
7.一种客户端,其特征在于,所述客户端包括:
第一发送单元,用于根据操作请求,向服务器发送指令消息;其中,所述指令消息至少包括:规则标识、数据表标识、所述操作请求的解析值、选取字段列表及第一解析字段;所述数据表标识用于指示生成数据库语句所需查询的第一数据表;所述选取字段列表包括至少一个第一选取字段;所述第一选取字段为从所述第一数据表选取的字段;所述数据表标识、选取字段列表及第一解析字段的至少其中之一,用于所述服务器进行信息校验;所述指令消息还包括条件字符串和生成策略;所述条件字符串用于限定所述数据库语句的附加条件,所述条件字符串为所述客户端根据操作请求携带的条件参数确定的;所述生成策略用于指示生成所述数据库语句的方式,所述数据库语句表示选取不同面值的充值卡的数量组合;所述第一解析字段为充值卡不同面值的枚举字段,所述解析值为所述充值卡不同面值的充值总额,所述充值卡不同面值的充值总额对应为所述第一解析字段的取值总和;第一接收单元,用于接收所述服务器生成的数据库语句;其中,所述数据库语句是:在所述信息校验通过之后,所述服务器通过查询根据解析规则确定的规则标识对应的第二数据表得到的查询结果生成的;
执行单元,用于执行所述数据库语句,形成执行结果;
第一发送单元,用于将所述执行结果返回所述服务器;其中,所述执行结果用于所述服务器更新资源链表,所述资源链表存储有响应所述操作请求的可用资源数量;其中,所述可用资源数量为不同面值充值卡的数量。
8.一种服务器,其特征在于,所述服务器包括:
第二接收单元,用于接收客户端根据操作请求发送的指令消息,其中,所述指令消息至少包括:规则标识、数据表标识、所述操作请求的解析值、选取字段列表及第一解析字段;所述数据表标识用于指示生成数据库语句所需查询的第一数据表;所述选取字段列表包括至少一个第一选取字段;所述第一选取字段为从所述第一数据表选取的字段;所述指令消息还包括条件字符串和生成策略的至少其中之一,用于所述服务器进行信息校验;所述条件字符串用于限定所述数据库语句的附加条件,所述条件字符串为所述客户端根据操作请求携带的条件参数确定的;所述生成策略用于指示生成所述数据库语句的方式,所述数据库语句表示选取不同面值的充值卡的数量组合;所述第一解析字段为充值卡不同面值的枚举字段,所述解析值为所述充值卡不同面值的充值总额,所述充值卡不同面值的充值总额对应为所述第一解析字段的取值总和;
确定单元,用于所述服务器在所述信息校验通过之后,通过查询根据解析规则确定的规则标识对应的第二数据表得到的查询结果生成数据库语句,包括:
确定所述规则标识对应的第二数据表;
查询单元,用于根据所述解析值查询所述第二数据表,获得查询结果;
生成单元,用于根据所述查询结果生成数据库语句;
第二发送单元,用于将所述数据库语句发送给所述客户端;
第二接收单元,用于接收所述客户端发送的执行所述数据库语句的执行结果;
更新单元,根据所述执行结果,更新资源链表;其中,所述资源链表存储有响应所述操作请求的可用资源数量,所述可用资源数量为不同面值充值卡的数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610706213.5A CN107766393B (zh) | 2016-08-22 | 2016-08-22 | 基于数据库的信息处理方法、客户端及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610706213.5A CN107766393B (zh) | 2016-08-22 | 2016-08-22 | 基于数据库的信息处理方法、客户端及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107766393A CN107766393A (zh) | 2018-03-06 |
CN107766393B true CN107766393B (zh) | 2021-12-14 |
Family
ID=61264716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610706213.5A Active CN107766393B (zh) | 2016-08-22 | 2016-08-22 | 基于数据库的信息处理方法、客户端及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107766393B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108536544B (zh) * | 2018-03-21 | 2021-06-25 | 微梦创科网络科技(中国)有限公司 | 基于数据库消息队列的消费方法、装置、服务器和介质 |
CN109376183B (zh) * | 2018-10-15 | 2019-08-06 | 行吟信息科技(上海)有限公司 | 一种信息处理方法、装置及系统 |
CN109710655B (zh) * | 2018-11-09 | 2023-12-05 | 中国平安人寿保险股份有限公司 | 数据库查询方法、装置、终端设备及存储介质 |
CN110909018A (zh) * | 2019-11-12 | 2020-03-24 | 深圳前海微众银行股份有限公司 | Sql语句生成方法、装置、设备及存储介质 |
CN111008232A (zh) * | 2019-11-23 | 2020-04-14 | 杭州米络星科技(集团)有限公司 | 一种业务数据入库方法 |
CN111159162B (zh) * | 2019-12-31 | 2023-07-25 | 中国联合网络通信集团有限公司 | 数据库配置方法及设备 |
CN111858778B (zh) * | 2020-08-18 | 2023-11-10 | 天津速越科技有限公司 | 基于蓝牙ic卡的服务器端数据读写方法及动态库使能器 |
CN113239064A (zh) * | 2021-06-24 | 2021-08-10 | 江苏创源电子有限公司 | 一种数据库更新方法、装置、电子设备及存储介质 |
CN116226786B (zh) * | 2023-03-22 | 2023-08-22 | 中国人民解放军军事科学院系统工程研究院 | 一种用于信息系统数据融合的数据处理方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6892205B1 (en) * | 2001-02-28 | 2005-05-10 | Oracle International Corporation | System and method for pre-compiling a source cursor into a target library cache |
CN101079763A (zh) * | 2006-06-12 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 一种服务器远程配置与管理系统和方法 |
CN101860449B (zh) * | 2009-04-09 | 2014-02-19 | 华为技术有限公司 | 一种数据查询方法、装置及系统 |
CN101719249B (zh) * | 2009-12-01 | 2014-04-16 | 青岛海信移动通信技术股份有限公司 | 基于rfid技术的移动终端充值/付费系统及方法 |
CN102457555A (zh) * | 2010-10-28 | 2012-05-16 | 中兴通讯股份有限公司 | 一种分布式存储的安全系统及方法 |
CN102546664A (zh) * | 2012-02-27 | 2012-07-04 | 中国科学院计算技术研究所 | 用于分布式文件系统的用户与权限管理方法及系统 |
CN103685207B (zh) * | 2012-09-21 | 2018-01-19 | 百度在线网络技术(北京)有限公司 | 跨数据源的数据整合系统、装置及方法 |
CN105246061A (zh) * | 2015-08-31 | 2016-01-13 | 国家电网公司 | 一种移动通信业务的服务终端 |
CN105404665B (zh) * | 2015-11-12 | 2019-04-26 | 南威软件股份有限公司 | 一种json格式数据的查询管理系统 |
-
2016
- 2016-08-22 CN CN201610706213.5A patent/CN107766393B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107766393A (zh) | 2018-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107766393B (zh) | 基于数据库的信息处理方法、客户端及服务器 | |
EP3678346B1 (en) | Blockchain smart contract verification method and apparatus, and storage medium | |
CN109242500B (zh) | 区块链交易有效性验证方法、装置及存储介质 | |
US10225145B2 (en) | Method and device for updating client | |
CN108572986B (zh) | 一种数据更新的方法及节点设备 | |
US9020949B2 (en) | Method and system for centralized issue tracking | |
CN110598280A (zh) | 一种设备仿真系统和方法、计算机可读存储介质 | |
CN110276074B (zh) | 自然语言处理的分布式训练方法、装置、设备及存储介质 | |
CN106997431B (zh) | 一种数据处理方法及装置 | |
CN111064716B (zh) | 消息转换方法、装置、存储介质及服务器 | |
CN109829073B (zh) | 一种图像搜索的方法及装置 | |
CN111538659A (zh) | 业务场景的接口测试方法、系统、电子设备和存储介质 | |
CN112486518B (zh) | 共识算法装配方法及装置 | |
CN104424352B (zh) | 向用户终端提供代理服务的系统和方法 | |
CN109857450B (zh) | 一种校验服务编排方法及装置 | |
CN111444199B (zh) | 数据处理方法及装置、存储介质和处理器 | |
CN110347683B (zh) | 一种数据表合并处理方法及装置 | |
CN112100208B (zh) | 一种操作请求的转发方法和装置 | |
CN106649352B (zh) | 数据处理方法及装置 | |
CN112579250A (zh) | 中间件的管理方法及装置、修复引擎系统 | |
CN110580172A (zh) | 配置规则的验证方法及装置、存储介质、电子装置 | |
CN111383071B (zh) | 房产交易系统涉及的场景的条件筛选方法和装置 | |
CN114090112B (zh) | 配置文件的加载方法和装置、存储介质及电子装置 | |
CN113076721B (zh) | 一种基于XPath的编码长度控制方法以及装置 | |
CN110287191B (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 |