CN103823680B - 一种游戏业务逻辑引擎的开发方法及装置 - Google Patents
一种游戏业务逻辑引擎的开发方法及装置 Download PDFInfo
- Publication number
- CN103823680B CN103823680B CN201410062832.6A CN201410062832A CN103823680B CN 103823680 B CN103823680 B CN 103823680B CN 201410062832 A CN201410062832 A CN 201410062832A CN 103823680 B CN103823680 B CN 103823680B
- Authority
- CN
- China
- Prior art keywords
- sql
- information
- store transaction
- trigger
- sentence
- 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
- 238000000034 method Methods 0.000 title claims abstract description 15
- 238000011161 development Methods 0.000 title claims description 30
- 230000018109 developmental process Effects 0.000 claims description 29
- 238000013459 approach Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 8
- 230000011218 segmentation Effects 0.000 claims description 4
- 239000011159 matrix material Substances 0.000 claims description 3
- 241000208340 Araliaceae Species 0.000 claims 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims 2
- 235000003140 Panax quinquefolius Nutrition 0.000 claims 2
- 235000008434 ginseng Nutrition 0.000 claims 2
- 238000003860 storage Methods 0.000 abstract description 3
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 230000008859 change Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000686 essence Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种游戏业务逻辑引擎的开发方法,方法包括:将游戏业务逻辑分析拆解,用一组含有变量的sql语句实现;循环遍历该组sql语句,对每一条sql语句执行下一步骤;根据输入参数和缓存信息替换当前sql语句中变量,判断当前sql语句是否是读指令,如是,查询数据库并从设置表中读取需要的信息,并从中选择重要列存入缓存;读取下一条sql语句,继续执行本步骤;否则,执行存储事务,将信息写入数据库各个表的相关记录中,将更新后的相关记录存入缓存;读取下一条sql语句,继续执行本步骤。本发明还涉及一种实现上述方法的装置。实施本发明的游戏业务逻辑引擎的开发方法及装置,具有以下有益效果:代码量较少、节省内存。
Description
技术领域
本发明涉及业务逻辑开发领域,特别涉及一种游戏业务逻辑引擎的开发方法及装置。
背景技术
现有游戏的业务逻辑引擎在服务器端采用面向对象(Object Oriented)的软件开发方法进行构建。其依赖于Spring框架(开源框架)、Hibernate框架(对象关系映射框架)等,代码量较大,占用内存多,从而导致***运行效率较低,维护修改困难。此外,各个游戏逻辑的关键点分布在不同的文件,模块接口较多,各个模块之间的联调工作量大,造成管理不方便。许多成熟的游戏开发***,在***后台提供了很多参数设置选择项,部分解决了不用修改代码,就可以实现业务逻辑的变更,但是存在不够灵活,参数项太多,管理不方便的情况。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述代码量较大、占用内存多的缺陷,提供一种代码量较少、节省内存的游戏业务逻辑引擎的开发方法及装置。
本发明解决其技术问题所采用的技术方案是:构造一种游戏业务逻辑引擎的开发方法,包括如下步骤:
A)将游戏业务逻辑分析拆解,用一组含有变量的sql(Structured QueryLanguage,结构化查询语言)语句来实现;
B)循环遍历该组sql语句,对每一条sql语句执行步骤C);
C)根据输入参数和缓存信息替换当前sql语句中的变量,判断当前sql语句是否是读指令,如是,执行步骤D);否则,执行步骤E);
D)查询数据库并从设置表中读取所需要的信息,并根据参数从所述信息中选择重要列存入缓存,供后续sql语句使用;然后读取下一条sql语句,返回步骤C);
E)执行存储事务,将信息写入到数据库各个表的相关记录中,并将更新后的相关记录存入缓存,供后续sql语句使用;然后读取下一条sql语句,返回步骤C)。
在本发明所述的游戏业务逻辑引擎的开发方法中,所述步骤D)进一步包括:
D1)查询数据库,并读取设置表中的格式化sql编码;所述格式化sql编码包括变量;
D2)根据上下文数据和缓存信息替换所述格式化sql编码中的变量;
D3)将替换变量后的sql编码拼接成完整的sql语句;
D4)判断所述sql语句是否正确,如是,执行步骤D5);否则,执行步骤D6);
D5)执行数据库查询并返回查询结果;所述查询结果为json类型的数据;
D6)返回出错信息,退出数据库查询。
在本发明所述的游戏业务逻辑引擎的开发方法中,所述步骤E)进一步包括:
E1)判断所述存储事务中是否包含需要检验的字段,如是,执行子查询操作,并执行步骤E2);否则,不进行验证;
E2)判断子查询结果与设定值是否匹配,如是,执行步骤E3);否则,存储事务中断,并将结果返回给用户;
E3)进入向所述数据库写入信息的过程。
在本发明所述的游戏业务逻辑引擎的开发方法中,所述步骤E3)进一步包括:
E31)执行所述sql语句;
E32)判断触发条件是否成立,如是,触发并将信息写入数据库后修改相关表格的相关记录;否则,退出。
在本发明所述的游戏业务逻辑引擎的开发方法中,所述信息包括字段和字段值,所述相关记录包括字段和字段值。
本发明还涉及一种实现上述游戏业务逻辑引擎的开发方法的装置,包括:
业务逻辑实现单元:用于将游戏业务逻辑分析拆解,用一组含有变量的sql语句来实现;
遍历单元:用于循环遍历该组sql语句;
替换单元:用于根据输入参数和缓存信息替换当前sql语句中的变量,判断当前sql语句是否是读指令;
查询读取单元:用于查询数据库并从设置表中读取所需要的信息,并根据参数从所述信息中选择重要列存入缓存,供后续sql语句使用;然后读取下一条sql语句;
存储事务执行单元:用于执行存储事务,将信息写入到数据库各个表的相关记录中,并将更新后的相关记录存入缓存,供后续sql语句使用;然后读取下一条sql语句。
在本发明所述的实现上述游戏业务逻辑引擎的开发方法的装置中,所述查询读取单元进一步包括:
编码读取模块:用于查询数据库,并读取设置表中的格式化sql编码;所述格式化sql编码包括变量;
替换模块:用于根据上下文数据和缓存信息替换所述格式化sql编码中的变量;
拼接模块:用于将替换变量后的sql编码拼接成完整的sql语句;
语句判断模块:用于判断所述sql语句是否正确;
返回模块:用于执行数据库查询并返回查询结果;所述查询结果为json类型的数据;
退出模块:用于返回出错信息,退出数据库查询。
在本发明所述的实现上述游戏业务逻辑引擎的开发方法的装置中,所述存储事务执行单元进一步包括:
字段检验模块:用于判断所述存储事务中是否包含需要检验的字段,如是,执行子查询操作;否则,不进行验证;
匹配模块:用于判断子查询结果与设定值是否匹配,并在不匹配时使存储事务中断,并将结果返回给用户;
写模块:用于进入向所述数据库写入信息的过程。
在本发明所述的实现上述游戏业务逻辑引擎的开发方法的装置中,所述写模块进一步包括:
语句执行模块:用于执行所述sql语句;
触发判断模块:用于判断触发条件是否成立,如是,触发并将信息写入数据库后修改相关表格的相关记录;否则,退出。
在本发明所述的实现上述游戏业务逻辑引擎的开发方法的装置中,所述信息包括字段和字段值,所述相关记录包括字段和字段值。
实施本发明的游戏业务逻辑引擎的开发方法及装置,具有以下有益效果:由于用一组含有变量的sql语句实现游戏业务逻辑引擎;当收到读指令时,查询数据库并从设置表中读取所需要的信息;当收到写指令时,执行存储事务,将信息写入到数据库各个表的相关记录中;其不需要创建类,从而就不需要类与数据库之间的桥梁,所以其代码量较少、节省内存。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明游戏业务逻辑引擎的开发方法及装置一个实施例中方法的流程图;
图2为所述实施例中查询数据库并从设置表中读取所需要的信息的具体流程图;
图3为所述实施例中执行存储事务,将信息写入到数据库各个表的相关记录中的具体流程图;
图4为所述实施例中进入向数据库写入信息的过程的具体流程图;
图5为所述实施例中装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明游戏业务逻辑引擎的开发方法及装置实施例中,其游戏业务逻辑引擎的开发方法的流程图如图1所示。图1中,该游戏业务逻辑引擎的开发方法包括如下步骤:
步骤S01将游戏业务逻辑分析拆解,用一组含有变量的sql语句来实现:本步骤中,将游戏业务逻辑分析拆解,用一组含有变量的sql语句实现游戏业务逻辑引擎。
步骤S02循环遍历该组sql语句,对每一条sql语句执行步骤S03:本步骤中,循环遍历该组sql语句,对每一条sql语句执行步骤S03。
步骤S03根据输入参数和缓存信息替换当前sql语句中的变量,判断当前sql语句是否是读指令:本步骤中,根据输入参数和缓存信息替换当前sql语句中的变量,并判断当前sql语句是否是读指令,如果判断的结果为是,则执行步骤S04;否则,执行步骤S05。
步骤S04查询数据库并从设置表中读取所需要的信息,并根据参数从信息中选择重要列存入缓存,供后续sql语句使用;然后读取下一条sql语句:如果上述步骤S03的判断结果为是,则执行本步骤。本步骤中,查询数据库并从设置表中读取所需要的信息,并根据参数从上述信息中选择重要列,并将其存入缓存,以供后续sql语句使用;然后读取下一条sql语句,即进行了读取事务,执行完本步骤,返回步骤S03。
步骤S05执行存储事务,将信息写入到数据库各个表的相关记录中,并将更新后的相关记录存入缓存,供后续sql语句使用;然后读取下一条sql语句:如果上述步骤S03的判断结果为否,则执行本步骤。本步骤中,执行存储事务,将信息写入到数据库各个表的相关记录中,并将更新后的相关记录存入缓存,以供后续sql语句使用;然后读取下一条sql语句。存储事务就是向数据库写入信息或数据的操作。其中,上述信息包括字段和字段值,
上述各个表的相关记录也包括字段和字段值。值得一提的是,执行完本步骤,返回步骤S03。由于不需要创建类,不需要类与数据库之间的桥梁,其不再占用内存,所以代码量较少、节省了内存(即节省服务器内存资源)。
对于本实施例而言,上述步骤S04还可进一步细化,其细化后的流程图如图2所示。图2中,上述步骤S04进一步包括:
步骤S41查询数据库,并读取设置表中的格式化sql编码:本步骤中,查询数据库,并读取设置表中的格式化sql编码,上述格式化sql编码包括变量。
步骤S42根据上下文数据和缓存信息替换格式化sql编码中的变量:本步骤中,根据上下文数据和缓存信息,将格式化sql编码中的变量进行替换掉。
步骤S43将替换变量后的sql编码拼接成完整的sql语句:本步骤中,将替换变量后的sql编码进行拼接,使其成为完整的sql语句。
步骤S44判断上述sql语句是否正确:本步骤中,判断上述sql语句是否正确,如果判断的结果为是,则执行步骤S45;否则,执行步骤S46。
步骤S45执行数据库查询并返回查询结果:如果上述步骤S44的判断结果为是,即上述sql语句是正确的,则执行本步骤。本步骤中,执行数据库查询并返回查询结果,上述查询结果为json类型的数据。
步骤S46返回出错信息,退出数据库查询:如果上述步骤S44的判断结果为否,即上述sql语句是错误的,则执行本步骤。本步骤中,返回出错信息,退出数据库查询。
值得一提的是,由于许多游戏逻辑设计复杂,存在多表关联查询情况。本发明可以在一次读取事务中,同时查询多个表及其各自的关联子表,或同时按不同条件查询同一表及其各自的关联表,返回值为:指定分割符号的字符串,或json格式的字符串。其支持远程跨域查询。下面举例来说明其具体配置方式:
galx:所属子***;
cid:所属模块;
ct:表名;对于同一表的多个查询,可以用表名@1,表名@2……区分;
cq:查询字段;all等同于sql中的*;
cw:查询条件;等同sql中的where之后的语句;
cq,cw可使用变量,变量命名方式:{字段名};变量根据上下文和相关记录进行取值。
对于本实施例而言,上述步骤S05还可进一步细化,其细化后的流程图如图3所示。图3中,上述步骤S05进一步包括:
步骤S51判断存储事务中是否包含需要检验的字段:在进行写入之前,首先要进行写前检验。本步骤中,判断存储事务中是否包含需要检验的字段,如果判断的结果为是,即存储事务中包含需要检验的字段,则执行步骤S53;否则,执行步骤S52。
步骤S52不进行验证:如果上述步骤S51的判断结果为否,即存储事务中没有需要检验的字段,则执行本步骤。本步骤中,不进行验证,继续执行存储事务。
步骤S53执行子查询操作:如果上述步骤S51的判断结果为是,即执行本步骤。本步骤中,执行子查询操作。执行完本步骤,执行步骤S54。
步骤S54判断子查询结果与设定值是否匹配:本步骤中,判断子查询结果与设定值是否匹配,如果判断的结果为是,则执行步骤S56;否则,执行步骤S55。
步骤S55存储事务中断,并将结果返回给用户:如果上述步骤S54的判断结果为否,即子查询结果与设定值不匹配,则执行本步骤。本步骤中,存储事务中断,不执行该存储事务,将结果(中断信息)返回给用户。
步骤S56进入向数据库写入信息的过程:如果上述步骤S54的判断结果为是,即子查询结果与设定值匹配,则执行本步骤。本步骤中,进入向数据库写入信息的过程。
值得一提的是,每一次存储事务可能涉及多个表,多行数据,并需要对某些存储内容进行写入前分析。下面举例来说明写入条件(wr)的实现的具体配置方式:
cta:分析的表名;
ccl:分析字段;
cids:分析字段值;
c1:分析判断条件;
c2:分析判断结果;
clogic:分析判断符(>、<、=);
cts:分析判断不成立时返回的信息;
cta:分析判断记录表名;
galx:所属子***。
当cta表发生存储事务时,如果没有对ccl字段进行查询则不验证,存储事务继续。
如果有对ccl字段进行查询,则执行c1查询操作,其中c1中存储的是一个完整的sql查询语句,直接执行c1可得到查询结果。如果该查询结果与原先设定好的c2的关系是clogic时,则退出验证,继续执行存储事务;如果该查询结果与c2的关系不是clogic时,则存储事务中断,不执行该存储事务,返回cts提示,其前端显示cts中断信息。
对于本实施例而言,上述步骤S56还可进一步细化,其细化后的流程图如图4所示。图4中,上述步骤S56进一步包括:
步骤S561执行sql语句:本步骤中,执行上述sql语句。
步骤S562判断触发条件是否成立:本步骤中,判断触发条件是否成立,如果判断的结果为是,则执行步骤S564;否则,执行步骤S563。
步骤S563退出:如果上述步骤S562的判断结果为否,即触发条件不成立,则执行本步骤。本步骤中,退出,不执行触发。
步骤S564触发并将信息写入数据库后修改相关表格的相关记录:如果上述步骤S562的判断结果为是,即触发条件成立,则执行本步骤。本步骤中,执行触发,并将信息写入数据库后修改相关表格的相关记录。
值得一提的是,在触发时,要用到触发器,本实施例中,触发器(tr)为循环触发,下面举例来说明其具体配置方式:
cta:触发表名;
ccl:触发字段;
csql:关联数据;
ct:要更新的表名;
cq:更新字段({x}字符等于csql查询出来的数据);
cw:更新条件;
galx:所属模块。
当程序出现‘'&option=011&’,其后面紧接的字符有cll字段值时,触发条件成立,执行csql,其中csql字段中存储的是完整的查询语句,执行该查询语句并将查询结果作为参数,接受该参数后,将其拼接成完整的sql更新语句,更新目标数据表。如果触发条件不成立,不执行触发。
本实施例还涉及一种实现上述游戏业务逻辑引擎的开发方法的装置,其结构示意图如图5所示。图5中,该装置包括业务逻辑实现单元1、遍历单元2、替换单元3、查询读取单元4和存储事务执行单元5;其中,业务逻辑实现单元1用于将游戏业务逻辑分析拆解,用一组含有变量的sql语句来实现;遍历单元2用于循环遍历该组sql语句;替换单元3用于根据输入参数和缓存信息替换当前sql语句中的变量,判断当前sql语句是否是读指令;查询读取单元4用于查询数据库并从设置表中读取所需要的信息,并根据参数从信息中选择重要列存入缓存,供后续sql语句使用;然后读取下一条sql语句;存储事务执行单元5用于执行存储事务,将信息写入到数据库各个表的相关记录中,并将更新后的相关记录存入缓存,供后续sql语句使用;然后读取下一条sql语句。上述信息包括字段和字段值,上述相关记录包括字段和字段值。由于不需要创建类,不需要类与数据库之间的桥梁,其不再占用内存,所以代码量较少、节省了内存。
在本实施例中,上述查询读取单元4进一步包括编码读取模块41、替换模块42、拼接模块43、语句判断模块44、返回模块45和退出模块46;其中,编码读取模块41用于查询数据库,并读取设置表中的格式化sql编码;上述格式化sql编码包括变量;替换模块42用于根据上下文数据和缓存信息替换所述格式化sql编码中的变量;拼接模块43用于将替换变量后的sql编码拼接成完整的sql语句;语句判断模块44用于判断所述sql语句是否正确;返回模块45用于执行数据库查询并返回查询结果;所述查询结果为json类型的数据;退出模块46用于返回出错信息,退出数据库查询。
本实施例中,上述存储事务执行单元5进一步包括字段检验模块51、匹配模块52和写模块53;其中,字段检验模块51用于判断存储事务中是否包含需要检验的字段,如是,执行子查询操作;否则,不进行验证;匹配模块52用于判断子查询结果与设定值是否匹配,并在不匹配时使存储事务中断,并将结果返回给用户;写模块53用于进入向数据库写入信息的过程。写模块53进一步包括语句执行模块531和触发判断模块532;其中,语句执行模块531用于执行sql语句;触发判断模块532用于判断触发条件是否成立,如是,触发并将信息写入数据库后修改相关表格的相关记录;否则,退出。
由于许多游戏都将执行很多任务,本发明可以快速创建任务列表,只需通过一句代码调用即可完成上述操作。返回值为指定分割符号的字符串或json格式的字符串。具体如下:首先用sql从数据库中读取任务信息;判断读取的任务信息是否是有效任务,如果是有效任务,则执行主任务,读取任务的相关记录(子任务)后执行下一步骤;如果不是有效的任务,则退出。此后判断是否存在对应的子任务,如果存在,则执行该子任务;否则,退出。本发明采取了更直接、更直观的方式来实现各种业务逻辑,让游戏开发更轻松,并规避了编写大量代码会出现疏漏问题。
总之,在本实施例中,本发明采用了不同于传统面向对象的开发方法,通过表格化业务逻辑的配置为实现手段,将原本写在数据库中的存储过程(存储事务)和触发器的代码格式化后存在表格中,从而实现让业务逻辑可以利用搜索、排序和分类统计等分析手段进行维护管理。其比面向对象的开发方式更节约服务器内存等宝贵资源,极大地减少了服务端程序员的代码编写量,降低了粗心造就bug的可能性。通过表格更方便直观地维护和管理业务逻辑。其实现容易,轻量级架构,灵活性较高,除了可以应用于游戏开发,其他各行各业都可应用本发明来降低代码编写量。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种游戏业务逻辑引擎的开发方法,其特征在于,包括如下步骤:
A)将游戏业务逻辑分析拆解,用一组含有变量的sql语句来实现;
B)循环遍历该组sql语句,对每一条sql语句执行步骤C);
C)根据输入参数和缓存信息替换当前sql语句中的变量,判断当前sql语句是否是读指令,如是,执行步骤D);否则,执行步骤E);
D)查询数据库并从设置表中读取所需要的信息,并根据参数从所述信息中选择重要列存入缓存,供后续sql语句使用;然后读取下一条sql语句,返回步骤C);在一次读取事务中,同时查询多个表及其各自的关联子表,或同时按不同条件查询同一表及其各自的关联表,返回值为:指定分割符号的字符串,或json格式的字符串;
E)执行存储事务,将信息写入到数据库各个表的相关记录中,并将更新后的相关记录存入缓存,供后续sql语句使用;然后读取下一条sql语句,返回步骤C);写入条件的实现的具体配置方式:
cta:分析的表名;
ccl:分析字段;
cids:分析字段值;
c1:分析判断条件;
c2:分析判断结果;
clogic:分析判断符;
cts:分析判断不成立时返回的信息;
cta:分析判断记录表名;
galx:所属子***;
当cta表发生存储事务时,如果没有对ccl字段进行查询则不验证,存储事务继续;如果有对ccl字段进行查询,则执行c1查询操作,其中c1中存储的是一个完整的sql查询语句,直接执行c1可得到查询结果;如果该查询结果与原先设定好的c2的关系是clogic时,则退出验证,继续执行存储事务;如果该查询结果与c2的关系不是clogic时,则存储事务中断,不执行该存储事务,返回cts提示,其前端显示cts中断信息;
所述步骤E)进一步包括:
E1)判断所述存储事务中是否包含需要检验的字段,如是,执行子查询操作,并执行步骤E2);否则,不进行验证;
E2)判断子查询结果与设定值是否匹配,如是,执行步骤E3);否则,存储事务中断,并将结果返回给用户;
E3)进入向所述数据库写入信息的过程;
所述步骤E3)进一步包括:
E31)执行所述sql语句;
E32)判断触发条件是否成立,如是,触发并将信息写入数据库后修改相关表格的相关记录;否则,退出;
在触发时,要用到触发器,所述触发器为循环触发,所述触发器的具体配置方式为:
cta:触发表名;
ccl:触发字段;
csql:关联数据;
ct:要更新的表名;
cq:更新字段;{x}字符等于csql查询出来的数据;
cw:更新条件;
galx:所属模块;
当程序出现‘'&option=011&’,其后面紧接的字符有cll字段值时,触发条件成立,执行csql,其中csql字段中存储的是完整的查询语句,执行该查询语句并将查询结果作为参数,接受该参数后,将其拼接成完整的sql更新语句,更新目标数据表;如果触发条件不成立,不执行触发。
2.根据权利要求1所述的游戏业务逻辑引擎的开发方法,其特征在于,所述步骤D)进一步包括:
D1)查询数据库,并读取设置表中的格式化sql编码;所述格式化sql编码包括变量;
D2)根据上下文数据和缓存信息替换所述格式化sql编码中的变量;
D3)将替换变量后的sql编码拼接成完整的sql语句;
D4)判断所述sql语句是否正确,如是,执行步骤D5);否则,执行步骤D6);
D5)执行数据库查询并返回查询结果;所述查询结果为json类型的数据;
D6)返回出错信息,退出数据库查询。
3.根据权利要求1所述的游戏业务逻辑引擎的开发方法,其特征在于,所述信息包括字段和字段值,所述相关记录包括字段和字段值。
4.一种实现如权利要求1所述的游戏业务逻辑引擎的开发方法的装置,其特征在于,包括:
业务逻辑实现单元:用于将游戏业务逻辑分析拆解,用一组含有变量的sql语句来实现;
遍历单元:用于循环遍历该组sql语句;
替换单元:用于根据输入参数和缓存信息替换当前sql语句中的变量,判断当前sql语句是否是读指令;
查询读取单元:用于查询数据库并从设置表中读取所需要的信息,并根据参数从所述信息中选择重要列存入缓存,供后续sql语句使用;然后读取下一条sql语句;在一次读取事务中,同时查询多个表及其各自的关联子表,或同时按不同条件查询同一表及其各自的关联表,返回值为:指定分割符号的字符串,或json格式的字符串;
存储事务执行单元:用于执行存储事务,将信息写入到数据库各个表的相关记录中,并将更新后的相关记录存入缓存,供后续sql语句使用;然后读取下一条sql语句;写入条件的实现的具体配置方式:
cta:分析的表名;
ccl:分析字段;
cids:分析字段值;
c1:分析判断条件;
c2:分析判断结果;
clogic:分析判断符;
cts:分析判断不成立时返回的信息;
cta:分析判断记录表名;
galx:所属子***;
当cta表发生存储事务时,如果没有对ccl字段进行查询则不验证,存储事务继续;如果有对ccl字段进行查询,则执行c1查询操作,其中c1中存储的是一个完整的sql查询语句,直接执行c1可得到查询结果;如果该查询结果与原先设定好的c2的关系是clogic时,则退出验证,继续执行存储事务;如果该查询结果与c2的关系不是clogic时,则存储事务中断,不执行该存储事务,返回cts提示,其前端显示cts中断信息;
在触发时,要用到触发器,所述触发器为循环触发,所述触发器的具体配置方式为:
cta:触发表名;
ccl:触发字段;
csql:关联数据;
ct:要更新的表名;
cq:更新字段;{x}字符等于csql查询出来的数据;
cw:更新条件;
galx:所属模块;
当程序出现‘'&option=011&’,其后面紧接的字符有cll字段值时,触发条件成立,执行csql,其中csql字段中存储的是完整的查询语句,执行该查询语句并将查询结果作为参数,接受该参数后,将其拼接成完整的sql更新语句,更新目标数据表;如果触发条件不成立,不执行触发。
5.根据权利要求4所述的实现如权利要求1所述的游戏业务逻辑引擎的开发方法的装置,其特征在于,所述查询读取单元进一步包括:
编码读取模块:用于查询数据库,并读取设置表中的格式化sql编码;所述格式化sql编码包括变量;
替换模块:用于根据上下文数据和缓存信息替换所述格式化sql编码中的变量;
拼接模块:用于将替换变量后的sql编码拼接成完整的sql语句;
语句判断模块:用于判断所述sql语句是否正确;
返回模块:用于执行数据库查询并返回查询结果;所述查询结果为json类型的数据;
退出模块:用于返回出错信息,退出数据库查询。
6.根据权利要求5所述的实现如权利要求1所述的游戏业务逻辑引擎的开发方法的装置,其特征在于,所述信息包括字段和字段值,所述相关记录包括字段和字段值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410062832.6A CN103823680B (zh) | 2014-02-24 | 2014-02-24 | 一种游戏业务逻辑引擎的开发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410062832.6A CN103823680B (zh) | 2014-02-24 | 2014-02-24 | 一种游戏业务逻辑引擎的开发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103823680A CN103823680A (zh) | 2014-05-28 |
CN103823680B true CN103823680B (zh) | 2017-07-18 |
Family
ID=50758765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410062832.6A Active CN103823680B (zh) | 2014-02-24 | 2014-02-24 | 一种游戏业务逻辑引擎的开发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103823680B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108228597A (zh) * | 2016-12-14 | 2018-06-29 | 深圳市优朋普乐传媒发展有限公司 | 数据库访问方法和装置 |
CN108399070A (zh) * | 2017-02-08 | 2018-08-14 | 大唐移动通信设备有限公司 | 一种软件安装方法及装置 |
CN108073685A (zh) * | 2017-11-17 | 2018-05-25 | 中国人民银行清算总中心 | 数据采集方法及*** |
CN108984698B (zh) * | 2018-07-05 | 2023-06-27 | 福建星瑞格软件有限公司 | 一种数据库业务行为的建模方法 |
CN110632878B (zh) * | 2019-10-08 | 2022-06-28 | 上海宝阶智能科技有限公司 | 一种异构嵌入式表格化处理及执行动作流程的方法和装置 |
CN111414438B (zh) * | 2020-03-13 | 2023-06-02 | 上海银赛计算机科技有限公司 | 基于mysql的实时规则匹配方法及*** |
CN115470229B (zh) * | 2022-08-30 | 2023-04-14 | 昆仑数智科技有限责任公司 | 数据表处理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1449178A (zh) * | 2003-04-03 | 2003-10-15 | 北京邮电大学 | 一种呼叫中心座席业务的生成方法及使用方法 |
CN101561806A (zh) * | 2008-04-17 | 2009-10-21 | 北京启明星辰信息技术股份有限公司 | Db2数据库操作的信息提取和审计方法及其装置、*** |
US8645313B1 (en) * | 2005-05-27 | 2014-02-04 | Microstrategy, Inc. | Systems and methods for enhanced SQL indices for duplicate row entries |
-
2014
- 2014-02-24 CN CN201410062832.6A patent/CN103823680B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1449178A (zh) * | 2003-04-03 | 2003-10-15 | 北京邮电大学 | 一种呼叫中心座席业务的生成方法及使用方法 |
US8645313B1 (en) * | 2005-05-27 | 2014-02-04 | Microstrategy, Inc. | Systems and methods for enhanced SQL indices for duplicate row entries |
CN101561806A (zh) * | 2008-04-17 | 2009-10-21 | 北京启明星辰信息技术股份有限公司 | Db2数据库操作的信息提取和审计方法及其装置、*** |
Also Published As
Publication number | Publication date |
---|---|
CN103823680A (zh) | 2014-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103823680B (zh) | 一种游戏业务逻辑引擎的开发方法及装置 | |
CN102323945B (zh) | 一种基于sql的数据库管理方法和装置 | |
US8671084B2 (en) | Updating a data warehouse schema based on changes in an observation model | |
CN107506442B (zh) | 一种模型的建模方法及装置 | |
CN104021460A (zh) | 一种工作流程管理***及工作流程处理方法 | |
CN104346185A (zh) | 应用对象属性更新方法、装置及应用平台 | |
CN103440285B (zh) | 大型******及其数据库更新方法 | |
CN111695805B (zh) | 一种面向法律合同的智能合约模型构建方法及*** | |
US9940182B1 (en) | Business rule engine validation systems and related methods | |
CN102880543B (zh) | 用于集成测试平台的测试数据供应链管理器 | |
CN108647147B (zh) | 一种利用图谱分析执行自动化测试机器人及其使用方法 | |
CN112597014A (zh) | 基于数据驱动的自动化测试方法、装置、介质及电子设备 | |
CN109240666A (zh) | 基于调用栈和依赖路径的函数调用代码生成方法及*** | |
CN109710528A (zh) | 一种测试脚本生成方法、装置、设备和介质 | |
CN114168565B (zh) | 业务规则模型的回溯测试方法、装置、***及决策引擎 | |
CN103455417B (zh) | 一种基于马尔可夫模型的软件错误定位***及错误定位方法 | |
CN114238463A (zh) | 一种用于分布式指标计算的计算引擎控制方法和装置 | |
CN114297961A (zh) | 一种芯片测试用例处理方法及相关装置 | |
CN112181951B (zh) | 一种异构数据库数据迁移方法、装置及设备 | |
Bauer et al. | Reusing system states by active learning algorithms | |
US8494886B2 (en) | Embedding planning components in transactional applications | |
CN113485911A (zh) | 一种基于银行业务的测试数据生成平台 | |
US20180321932A1 (en) | Method, device and related system for dynamically repairing application | |
US20190266163A1 (en) | System and method for behavior-on-read query processing | |
Jankovsky et al. | How to ADAPT |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20201116 Address after: Room 305, No.74, science Avenue, Huangpu District, Guangzhou City, Guangdong Province 510000 Patentee after: Youmeng blockchain Technology (Guangzhou) Co., Ltd Address before: 510000 Guangdong city of Guangzhou province Tianhe District village three cross road No. 1, lane two, room 407, building four self Patentee before: GUANGZHOU JINGGONG NETWORK TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |