著录项信息
专利名称 | 大型手机游戏系统及其数据库更新方法 |
申请号 | CN201310353724.X | 申请日期 | 2013-08-14 |
法律状态 | 授权 | 申报国家 | 暂无 |
公开/公告日 | 2013-12-11 | 公开/公告号 | CN103440285A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 北京乐动卓越科技有限公司 | 申请人地址 | 北京市石景山区八大处高科技园区西井路3号3号楼9077房间
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京乐动卓越科技有限公司 | 当前权利人 | 北京乐动卓越科技有限公司 |
发明人 | 柴魁元;阮江 |
代理机构 | 北京市京大律师事务所 | 代理人 | 张璐;方晓明 |
摘要
本发明公开了一种大型手机游戏系统及其数据库更新方法,所述方法包括:游戏服务器软件模块启动后,对于针对手机游戏的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表;游戏服务器软件模块接收游戏移动客户端软件模块发送的请求信息后,对其进行解析,根据解析结果以及业务需求对相关数据进行相应的操作,包括对数据类的数据进行相应改变;游戏服务器软件模块在调用数据库操作模块中的,与数据类的数据的改变方式相应的数据库操作类型的API程序时,将数据类的类名传入到API程序;API程序根据传入的类名,对具有该类名的数据表进行所述数据库操作类型的操作。该方法使得大型手机游戏更便于开发,减小了游戏开发周期。
1.一种大型手机游戏系统的数据库更新方法,其特征在于,包括:
在安装于游戏服务器上的游戏服务器软件模块启动后,对于针对手机游戏预先定义的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表;
在所述游戏服务器软件模块接收到安装于移动终端上的游戏移动客户端软件模块发送的请求信息后,对接收的请求信息进行解析;并根据解析结果以及业务需求对相关数据进行相应的操作,所述操作中包括对数据类的数据进行相应改变;
之后,所述游戏服务器软件模块在调用数据库操作模块中的,与所述数据类的数据的改变方式相应的数据库操作类型的API程序时,将所述数据类的类名传入到所述API程序;
所述API程序根据传入的类名,对具有该类名的数据表进行所述数据库操作类型的操作,具体包括:所述API程序根据传入的类名,获取具有该类名的数据类的数据,以及具有该类名的数据表;并根据获取的数据,生成所述数据库操作类型的、对所述数据表进行操作的sql语句后,根据生成的sql语句进行数据库操作;以及,所述API程序将生成的sql语句缓存到语句缓存处理模块中;所述语句缓存处理模块每隔设定时间段,将本模块中缓存的sql语句进行优化后,根据优化后的sql语句进行数据库操作。
2.如权利要求1所述的方法,其特征在于,所述数据类的数据的改变方式具体为:所述数据类中增加新的数据;以及,与所述数据类的数据的改变方式相应的数据库操作类型具体为数据插入类型;或者
所述数据类的数据的改变方式具体为:从所述数据类中删除数据;以及,与所述数据类的数据的改变方式相应的数据库操作类型具体为数据删除类型;或者
所述数据类的数据的改变方式具体为:修改所述数据类中的数据;以及,与所述数据类的数据的改变方式相应的数据库操作类型具体为数据修改类型。
3.如权利要求2所述的方法,其特征在于,所述对于针对手机游戏预先定义的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表,具体包括:
对于针对手机游戏预先定义的每个数据类,创建一个对应该数据类的数据表:该数据表与该数据类的名称相同,并且该数据类中定义的各属性分别映射为该数据表中的各字段。
4.如权利要求3所述的方法,其特征在于,所述对于针对手机游戏预先定义的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表,还包括:
对于针对手机游戏预先定义的每个数据类,确定该数据类的各属性的标签;
对于该数据类的每个属性,根据该属性的标签设置对应该数据类的数据表中,对应该属性的字段的标签。
5.如权利要求4所述的方法,其特征在于,所述将本模块中缓存的sql语句进行优化的方法包括:
若所述语句缓存处理模块确定出针对同一数据表,本模块中缓存有多个数据修改类型的sql语句,则将其中最后存入的sql语句保留,将其它sql语句从本模块中删除;
若所述语句缓存处理模块确定出针对同一数据表,本模块中缓存有在先存入的数据插入类型的sql语句,以及在后存入的数据删除类型的sql语句;且所述数据插入类型的sql语句中涉及插入操作的数据,与所述数据删除类型的sql语句中涉及删除操作的数据相同,则将所述数据插入类型的sql语句和数据删除类型的sql语句从本模块中删除。
6.一种大型手机游戏系统,其特征在于,包括:
安装于移动终端上的游戏移动客户端软件模块,接收用户的操作指令后,向游戏服务器发送相应的请求信息;
安装于游戏服务器上的数据库操作模块,其包括多种数据库操作类型的API程序;
安装于游戏服务器上的游戏服务器软件模块,其启动后对于针对手机游戏预先定义的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表;以及在接收到所述请求信息后,对接收的请求信息进行解析;并根据解析结果以及业务需求对相关数据进行相应的操作,所述操作中包括对数据类的数据进行相应改变;之后,在调用所述数据库操作模块中的,与所述数据类的数据的改变方式相应的数据库操作类型的API程序时,将所述数据类的类名传入到所述API程序;所述API程序根据传入的类名,对具有该类名的数据表进行所述数据库操作类型的操作;
所述系统还包括:语句缓存处理模块;以及
所述数据库操作模块中的API程序具体用于根据传入的类名,获取具有该类名的数据类的数据,以及具有该类名的数据表;并根据获取的数据,生成所述数据库操作类型的、对所述数据表进行操作的sql语句后,将生成的sql语句缓存到所述语句缓存处理模块中;
所述语句缓存处理模块每隔设定时间段,将本模块中缓存的sql语句进行优化后,根据优化后的sql语句进行数据库操作。
7.如权利要求6所述的系统,其特征在于,还包括:语句日志记录模块;
所述API程序还用于将生成的sql语句记录到所述语句日志记录模块中;以及所述语句日志记录模块将从当前时间之前的至少两个设定时间段内的sql语句进行保留;以及在所述语句缓存处理模块出现故障、恢复后,将本模块中记录的sql语句写入到所述语句缓存处理模块中。
8.如权利要求6或7所述的系统,其特征在于,还包括:数据缓存模块;以及所述游戏服务器软件模块还用于在所述根据解析结果以及业务需求对相关数据进行相应的操作中,从所述数据缓存模块中读取进行所述操作所需要的数据;并在进行相应的操作后,将进行所述操作后得到的数据缓存到所述数据缓存模块中。
大型手机游戏系统及其数据库更新方法\n技术领域\n[0001] 本发明涉及数据库领域,尤其涉及一种大型手机游戏系统及其数据库更新方法。\n背景技术\n[0002] 手机游戏是指运行于手机上的游戏软件。目前用来编写手机游戏最多的程序语言是Java语言,见J2ME(Java Platform,Micro Edition);其次是C语言。随着科技的发展,现在手机的功能越来越多,也越来越强大。而手机游戏也远远不是我们印象中的什么“俄罗斯方块”、“贪吃蛇”之类画面简陋,规则简单的游戏,进而发展到了可以和掌上游戏机媲美,具有很强的娱乐性和交互性的复杂形态;例如堪比电脑游戏的大型手机游戏“一代宗师”、“十年一剑”。\n[0003] 大型手机游戏通常为网络游戏,其是以互联网为传输媒介,以游戏运营商提供的游戏服务器和用户手持设备(移动终端)为处理终端,以游戏移动客户端软件为信息交互窗口的在线游戏。实现大型手机游戏的系统,即大型手机游戏系统,如图1所示,包括:安装有游戏移动客户端软件的移动终端101、设置于网络侧的游戏服务器102,以及与游戏服务器\n102相连的游戏数据库103。\n[0004] 移动终端101上的游戏移动客户端软件启动后,根据用户在玩游戏的过程中发送的操作指令向游戏服务器102发送相应的请求信息;其中,移动终端可以为手机、平板电脑。\n[0005] 游戏服务器102上安装有对应游戏移动客户端软件的游戏服务器软件,用以对游戏服务器102接收的请求信息,进行解析后,根据解析结果以及业务需求,进行相应的操作。\n[0006] 例如,游戏服务器软件接收到用户升级装备的请求信息,而用户升级装备的业务需求是:首先扣除用户的货币数据,然后提升用户的装备的属性;之后检查提升用户的装备的属性后是否有可以完成的成就;如果有,更新用户的成就信息。\n[0007] 因此,根据用户升级装备的业务需求需要进行的操作包括:更新游戏数据库103中的用户的货币数据、更新游戏数据库103中的用户装备数据、在确定有可以完成的成就时,更新游戏数据库103中的用户成就数据。\n[0008] 要完成上述的操作,则需要游戏的编程人员事先根据这些业务需求,将执行这些操作的数据库更新语句,即sql(structured query language,结构化查询语言)语句编写在游戏服务器软件中。也就是说,游戏服务器软件中由编程人员编写的代码中,要包括对请求信息解析的代码、根据业务需求对相关数据进行相应操作的业务逻辑代码;以及进行相应操作后,根据操作中对数据库更新的需求所编写的sql语句代码。\n[0009] 例如,上述的用户的货币数据、用户装备数据、用户成就数据存储在游戏数据库\n103的数据表A中;那么需要通过以下sql语句完成相关操作:\n[0010] 更新数据表A中的用户的货币数据的sql语句;\n[0011] 更新数据表A中的用户装备数据的sql语句;\n[0012] 更新数据表A中的用户成就数据的sql语句;\n[0013] 本发明的发明人发现,编程人员在编写游戏服务器软件过程中,根据业务需求对相关数据进行相应操作后,再根据进行的操作分析该操作对数据库更新的需求,并编写相应的sql语句需要耗费大量的时间;这使得采用现有技术的数据库更新方法进行大型手机游戏开发的周期较长;因此,有必要提供一种数据库更新方法,基于该数据库更新方法可以更方便编程人员开发大型手机游戏,从而减小游戏开发周期。\n发明内容\n[0014] 针对上述现有技术存在的缺陷,本发明提供了一种大型手机游戏系统及其数据库更新方法,使得基于该数据库更新方法的大型手机游戏更便于开发,以减小游戏开发周期。\n[0015] 根据本发明的一个方面,提供了一种大型手机游戏系统的数据库更新方法,包括:\n[0016] 在安装于游戏服务器上的游戏服务器软件模块启动后,对于针对手机游戏预先定义的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表;\n[0017] 在所述游戏服务器软件模块接收到安装于移动终端上的游戏移动客户端软件模块发送的请求信息后,对接收的请求信息进行解析;并根据解析结果以及业务需求对相关数据进行相应的操作,所述操作中包括对数据类的数据进行相应改变;\n[0018] 之后,所述游戏服务器软件模块在调用数据库操作模块中的,与所述数据类的数据的改变方式相应的数据库操作类型的API程序时,将所述数据类的类名传入到所述API程序;\n[0019] 所述API程序根据传入的类名,对具有该类名的数据表进行所述数据库操作类型的操作。\n[0020] 其中,所述数据类的数据的改变方式具体为:所述数据类中增加新的数据;以及,与所述数据类的数据的改变方式相应的数据库操作类型具体为数据插入类型;或者[0021] 所述数据类的数据的改变方式具体为:从所述数据类中删除数据;以及,与所述数据类的数据的改变方式相应的数据库操作类型具体为数据删除类型;或者\n[0022] 所述数据类的数据的改变方式具体为:修改所述数据类中的数据;以及,与所述数据类的数据的改变方式相应的数据库操作类型具体为数据修改类型。\n[0023] 较佳地,所述对于针对手机游戏预先定义的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表,具体包括:\n[0024] 对于针对手机游戏预先定义的每个数据类,创建一个对应该数据类的数据表:该数据表与该数据类的名称相同,并且该数据类中定义的各属性分别映射为该数据表中的各字段。\n[0025] 较佳地,所述对于针对手机游戏预先定义的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表,还包括:\n[0026] 对于针对手机游戏预先定义的每个数据类,确定该数据类的各属性的标签;\n[0027] 对于该数据类的每个属性,根据该属性的标签设置对应该数据类的数据表中,对应该属性的字段的标签。\n[0028] 较佳地,所述API程序根据传入的类名,对具有该类名的数据表进行所述数据库操作类型的操作,具体包括:\n[0029] 所述API程序根据传入的类名,获取具有该类名的数据类的数据,以及具有该类名的数据表;并根据获取的数据,生成所述数据库操作类型的、对所述数据表进行操作的sql语句后,根据生成的sql语句进行数据库操作。\n[0030] 较佳地,在所述生成所述数据库操作类型的、对所述数据表进行操作的sql语句后,还包括:\n[0031] 所述API程序将生成的sql语句缓存到语句缓存处理模块中;\n[0032] 所述语句缓存处理模块每隔设定时间段,将本模块中缓存的sql语句进行优化后,根据优化后的sql语句进行数据库操作;\n[0033] 其中,所述将本模块中缓存的sql语句进行优化的方法包括:\n[0034] 若所述语句缓存处理模块确定出针对同一数据表,本模块中缓存有多个数据修改类型的sql语句,则将其中最后存入的sql语句保留,将其它sql语句从本模块中删除;\n[0035] 若所述语句缓存处理模块确定出针对同一数据表,本模块中缓存有在先存入的数据插入类型的sql语句,以及在后存入的数据删除类型的sql语句;且所述数据插入类型的sql语句中涉及插入操作的数据,与所述数据删除类型的sql语句中涉及删除操作的数据相同,则将所述数据插入类型的sql语句和数据删除类型的sql语句从本模块中删除。\n[0036] 根据本发明的另一个方面,还提供了一种大型手机游戏系统,包括:\n[0037] 安装于移动终端上的游戏移动客户端软件模块,接收用户的操作指令后,向游戏服务器发送相应的请求信息;\n[0038] 安装于游戏服务器上的数据库操作模块,其包括多种数据库操作类型的API程序;\n[0039] 安装于游戏服务器上的游戏服务器软件模块,其启动后对于针对手机游戏预先定义的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表;以及在接收到所述请求信息后,对接收的请求信息进行解析;并根据解析结果以及业务需求对相关数据进行相应的操作,所述操作中包括对数据类的数据进行相应改变;之后,在调用所述数据库操作模块中的,与所述数据类的数据的改变方式相应的数据库操作类型的API程序时,将所述数据类的类名传入到所述API程序;所述API程序根据传入的类名,对具有该类名的数据表进行所述数据库操作类型的操作。\n[0040] 进一步,所述大型手机游戏系统,还包括:语句缓存处理模块;以及\n[0041] 所述数据库操作模块中的API程序具体用于根据传入的类名,获取具有该类名的数据类的数据,以及具有该类名的数据表;并根据获取的数据,生成所述数据库操作类型的、对所述数据表进行操作的sql语句后,将生成的sql语句缓存到所述语句缓存处理模块中;\n[0042] 所述语句缓存处理模块每隔设定时间段,将本模块中缓存的sql语句进行优化后,根据优化后的sql语句进行数据库操作。\n[0043] 进一步,所述大型手机游戏系统,还包括:语句日志记录模块;\n[0044] 所述API程序还用于将生成的sql语句记录到所述语句日志记录模块中;以及[0045] 所述语句日志记录模块将从当前时间之前的至少两个设定时间段内的sql语句进行保留;以及在所述语句缓存处理模块出现故障、恢复后,将本模块中记录的sql语句写入到所述语句缓存处理模块中。\n[0046] 进一步,所述大型手机游戏系统,还包括:数据缓存模块;以及\n[0047] 所述游戏服务器软件模块还用于在所述根据解析结果以及业务需求对相关数据进行相应的操作中,从所述数据缓存模块中读取进行所述操作所需要的数据;并在进行相应的操作后,将进行所述操作后得到的数据缓存到所述数据缓存模块中。\n[0048] 本发明技术方案中,大型手机游戏系统可以对于针对手机游戏预先定义的每个数据类,生成对应该数据类的数据表;并在数据类中的相关数据发生改变后,通过执行基于该数据类的相应的数据库操作,来实现数据库的更新。从而,编程人员在编写游戏服务器软件过程中,根据业务需求对相关数据进行相应操作,对操作中相关的数据类中的数据进行改变后,不用再根据进行的操作分析该操作对数据库更新的需求编写相应的sql语句,这样编程人员可以将更多的精力放在开发游戏的业务逻辑层面的代码上,而不用为底层的数据库的调用而耗费过多精力,使得编程人员更便于开发大型手机游戏,减小了游戏开发周期。\n[0049] 进一步,本发明的大型手机游戏系统中还设置了可以对生成的sql语句进行优化的语句日志记录模块,这样减少了数据库更新语句的传输和执行,提高了数据库更新的效率;而且,本发明的大型手机游戏系统中还设置了可以对一定时间段内生成的sql语句进行保留的语句日志记录模块,在语句缓存处理模块出现故障、恢复后,仍然可以保证进行改变的相关数据可以安全存储到数据库中,从而保证了数据的安全性。\n附图说明\n[0050] 图1为现有技术的大型手机游戏系统的架构图;\n[0051] 图2为本发明实施例的大型手机游戏系统的一种内部结构框图;\n[0052] 图3为本发明实施例的大型手机游戏系统的数据库更新方法的流程图;\n[0053] 图4为本发明实施例的大型手机游戏系统的另一种内部结构框图。\n具体实施方式\n[0054] 以下将结合附图对本发明的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。\n[0055] 本申请使用的“模块”、“系统”等术语旨在包括与计算机相关的实体,例如但不限于硬件、固件、软硬件组合、软件或者执行中的软件。例如,模块可以是,但并不仅限于:处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。举例来说,计算设备上运行的应用程序和此计算设备都可以是模块。一个或多个模块可以位于执行中的一个进程和/或线程内,一个模块也可以位于一台计算机上和/或分布于两台或更多台计算机之间。\n[0056] 本发明的发明人发现,在大型手机游戏的开发过程中,编程人员通常使用面向对象的语言进行程序编写;面向对象语言(Object-Oriented Language)是一种以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分;面向对象语言中提供了类、继承等成分;一个类是用来描述所有属于这个类的对象的共同结构的。\n[0057] 在一个大型手机游戏软件中通常包括两种类,一种类面向业务称为业务类,一种类面向数据称为数据类;在大型手机游戏软件中,若数据类中的相关数据发生了改变那么就可能需要涉及到对数据库进行更新的操作。\n[0058] 那么,本发明的发明人考虑到,若数据类中的相关数据发生改变后,执行基于该数据类的相应的数据库操作;从而编程人员在编写游戏服务器软件过程中,根据业务需求对相关数据进行相应操作,对操作中相关的数据类中的数据进行改变后,不用再根据进行的操作分析该操作对数据库更新的需求(例如,分析出需要对哪个数据表中的哪个字段进行什么样的操作)、编写相应的sql语句,而是执行一下基于该数据类的相应的数据库操作就可以了。这样,编程人员可以将更多的精力放在开发游戏的业务逻辑层面的代码上,而不用为底层的数据库的调用而耗费过多精力;使得编程人员更便于开发大型手机游戏,减小了游戏开发周期。\n[0059] 下面结合附图详细说明本发明的技术方案。\n[0060] 基于上述的分析和思路,本发明的可以实现大型手机游戏的系统,即大型手机游戏系统,内部结构框图如图2所示,包括:安装于移动终端上的游戏移动客户端软件模块\n201、安装于游戏服务器上的游戏服务器软件模块202,以及基于数据类的数据库操作模块\n203。\n[0061] 安装于移动终端上的游戏移动客户端软件模块201可以与现有的游戏移动客户端软件相同,接收用户的操作指令后,向游戏服务器发送相应的请求信息;并在接收到游戏服务器返回的信息后进行相应的游戏画面的显示。\n[0062] 安装于游戏服务器上的游戏服务器软件模块202则与现有的游戏服务器软件不同:游戏服务器软件模块202中预先定义了针对手机游戏的各数据类,并生成对应各数据类的数据表;在接收到游戏移动客户端软件模块201发送的请求信息后,对接收的请求信息进行解析,根据解析结果以及业务需求对相关数据进行相应的操作之后,可以调用基于数据类的数据库操作模块203中的API(Application Programming Interface,应用程序接口)程序,调用的API程序对数据库中的数据表进行数据插入、删除、修改的操作;其中,数据库与游戏服务器相连。\n[0063] 基于数据类的数据库操作模块203包括多种数据库操作类型的API程序;比如:\n[0064] 数据库操作类型为数据插入类型的API程序:int Save(TModel tModel);\n[0065] 数据库操作类型为数据删除类型的API程序:int Delete(TModel tModel);\n[0066] 数据库操作类型为数据修改类型的API程序:int Update(TModel tModel);其中,括号内为传入API程序的参数,即数据类的类名。\n[0067] 基于上述的大型手机游戏系统的数据库更新方法的流程,如图3所示,包括如下步骤:\n[0068] S301:游戏服务器软件模块202启动后,对于针对手机游戏预先定义的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表。\n[0069] 具体地,对于针对手机游戏预先定义的每个数据类,创建一个对应该数据类的数据表:该数据表与该数据类的名称相同,并且该数据类中定义的各属性分别映射为该数据表中的各字段;进一步,还可以对于针对手机游戏预先定义的每个数据类,确定该数据类的各属性的标签;对于该数据类的每个属性,根据该属性的标签设置对应该数据类的数据表中,对应该属性的字段的标签;具体过程可以是,游戏服务器软件模块202的进程启动后,对于预先定义的数据类通过反射来生成相关的元数据;之后,执行建表命令时,对应各数据类的元数据,分别生成创建对应各数据类的数据表的语句;例如,生成的创建“用户”数据表的语句如下:\n[0070] CREATE TABLE User(\n[0071] ‘UserId’VARCHAR(30)NOT NULL DEFAULT‘’,\n[0072] ‘UserName’VARCHAR(50)DEFAULT NULL,\n[0073] ‘Gold’INT(11)DEFAULT NULL,\n[0074] PRIMARY KEY(‘UserId’)\n[0075] )\n[0076] 其中,创建的表中的字段包括“UserId”(用户ID)、“UserName”(用户名)、“Gold”(金币);此外还包括字段“UserId”的标签,即主键标签(Primarykey)。\n[0077] 事实上,在步骤S301结束后,若游戏移动客户端软件模块201接收到用户的操作指令,向游戏服务器软件模块202发送相应的请求信息,则大型手机游戏系统根据用户的请求信息执行下述步骤完成数据库的更新:\n[0078] S302:在游戏服务器软件模块202接收到游戏移动客户端软件模块201发送的请求信息后,对接收的请求信息进行解析;并根据解析结果以及业务需求对相关数据进行相应的操作,所述操作中包括对数据类的数据进行相应改变。\n[0079] 例如,若游戏服务器软件模块202接收到游戏移动客户端软件模块201发送的请求信息,并对接收的请求信息进行解析后,得到的解析结果为用户升级装备,则游戏服务器软件模块202首先对货币数据类中的货币数据进行改变(扣除一部分货币),然后对装备数据类中的装备数据进行改变(提升用户的装备的属性);若装备数据类中的装备数据改变之后,用户有可以完成的成就,则对成就数据类中的成就数据进行改变(更新用户的成就信息)。\n[0080] S303:游戏服务器软件模块202在调用数据库操作模块203中的,与所述数据类的数据的改变方式相应的数据库操作类型的API程序时,将所述数据类的类名传入到该API程序。\n[0081] 具体地,在上述步骤S302中根据解析结果以及业务需求对数据类的数据进行相应改变后,编程人员会在后续进行如本步骤S303所述的调用数据库操作模块203的API程序操作:\n[0082] 在此过程中,若上述步骤S302根据解析结果以及业务需求对相关数据进行相应的操作中,对数据类的数据的改变方式是:在所述数据类中增加新的数据,则本步骤S303中调用的API程序的数据库操作类型是与该数据类的数据的改变方式相应的数据库操作类型,即数据插入类型;\n[0083] 若上述步骤S302根据解析结果以及业务需求对相关数据进行相应的操作中,对数据类的数据的改变方式是:从所述数据类中删除数据,则本步骤S303中调用的API程序的数据库操作类型是与该数据类的数据的改变方式相应的数据库操作类型,即数据删除类型;\n[0084] 若上述步骤S302根据解析结果以及业务需求对相关数据进行相应的操作中,对数据类的数据的改变方式是:修改所述数据类中的数据,则本步骤S303中调用的API程序的数据库操作类型是与该数据类的数据的改变方式相应的数据库操作类型,即数据修改类型。\n[0085] 由于在数据类中的相关数据发生改变后,编程人员仅需要获知相关数据的改变方式,调用数据库操作模块的API程序即可,不再需要根据对相关数据进行的操作分析该操作对数据库更新的需求,也不必根据该操作编写相应的sql语句,这样,编程人员不用为底层的数据库的调用而耗费过多精力;使得编程人员更便于开发大型手机游戏,减小了游戏开发周期。\n[0086] S304:该API程序根据传入的类名,对具有该类名的数据表进行所述数据库操作类型的操作。\n[0087] 具体地,该API程序根据传入的类名,获取具有该类名的数据类的数据,以及具有该类名的数据表;并根据获取的数据,生成所述数据库操作类型的、对所述数据表进行操作的sql语句后,根据生成的sql语句进行数据库操作。\n[0088] 例如,若传入到该API程序的类名为货币数据类,所述数据库操作类型为数据修改类型,则该API程序对货币数据表进行修改,具体可以对货币数据表中的货币字段进行修改。\n[0089] 作为一种更优的实施方式,本发明还提供了一种大型手机游戏系统,内部结构框图如图4所示,包括:安装于移动终端上的游戏移动客户端软件模块401、安装于游戏服务器上的游戏服务器软件模块402、基于数据类的数据库操作模块403,以及语句缓存处理模块\n404。\n[0090] 游戏移动客户端软件模块401与上述的游戏移动客户端软件模块201的功能相同;\n游戏服务器软件模块402与上述的游戏服务器软件模块202的功能相同,此处不再赘述。\n[0091] 基于数据类的数据库操作模块403包括多种数据库操作类型的API程序;游戏服务器软件模块402在调用数据库操作模块403中的API程序时,将数据类的类名传入到该API程序后,该API程序根据传入的类名,获取具有该类名的数据类的数据,以及具有该类名的数据表;并根据获取的数据,生成所述数据库操作类型的、对所述数据表进行操作的sql语句,并将生成的sql语句缓存到语句缓存处理模块404中。\n[0092] 语句缓存处理模块404每隔设定时间段,将本模块中缓存的sql语句进行优化后,根据优化后的sql语句进行数据库操作;其中,语句缓存处理模块404将本模块中缓存的sql语句进行优化具体可以包括:\n[0093] 若语句缓存处理模块404确定出针对同一数据表,本模块中缓存有多个数据修改类型的sql语句,则将其中最后存入的sql语句保留,将其它sql语句从本模块中删除;若语句缓存处理模块404确定出针对同一数据表,本模块中缓存有在先存入的数据插入类型的sql语句,以及在后存入的数据删除类型的sql语句;且数据插入类型的sql语句中涉及插入操作的数据,与数据删除类型的sql语句中涉及删除操作的数据相同,则将数据插入类型的sql语句和数据删除类型的sql语句从本模块中删除。\n[0094] 例如,若用户在设定时间段内进行了多次修改货币数据的操作,则API会将其生成的多条对货币数据表进行货币修改操作的sql语句缓存到语句缓存模块404中;语句缓存模块404仅保留最后存入的一条对货币数据表进行货币修改操作的sql语句,并仅根据该条sql语句进行数据库操作;\n[0095] 再如,用户获得一件装备后,在设定时间段内,又把该装备卖了,则API会将其生成的一条对装备数据表进行该装备插入操作的sql语句,以及一条对装备数据表进行该装备删除操作的sql语句缓存到语句缓存模块404中;语句缓存模块404将两条sql语句进行删除,不进行数据库操作;这样,减少了数据库更新语句的传输和执行,提高了数据库更新的效率;而且,用户进行数据库更新的操作越频繁,数据库更新的效率的提高也就越明显。\n[0096] 进一步,如图4所示的大型手机游戏系统还可包括:语句日志记录模块405。\n[0097] 相应地,数据库操作模块403中的API程序还可将生成的sql语句记录到语句日志记录模块405中。\n[0098] 语句日志记录模块405将从当前时间之前的至少两个设定时间段内的sql语句进行保留;以及在语句缓存处理模块404出现故障、恢复后,将本模块中记录的sql语句写入到语句缓存处理模块404中。这样,在语句缓存处理模块404出现故障、恢复后,仍然可以保证进行改变的相关数据可以安全存储到数据库中,保证了数据的安全性。\n[0099] 如图2、图4所示的大型手机游戏系统,还可包括:数据缓存模块;\n[0100] 相应地,游戏服务器软件模块202/游戏服务器软件模块402还用于在根据解析结果以及业务需求对相关数据进行相应的操作中,从数据缓存模块中读取进行所述操作所需要的数据;并在进行相应的操作后,将进行所述操作后得到的数据缓存到数据缓存模块中。\n[0101] 本发明技术方案中,大型手机游戏系统可以对于针对手机游戏预先定义的每个数据类,生成对应该数据类的数据表;并在数据类中的相关数据发生改变后,通过执行该数据类所对应的数据表的相应数据库操作,来实现数据库的更新。从而,编程人员在编写游戏服务器软件过程中,根据业务需求对相关数据进行相应操作,对操作中相关的数据类中的数据进行改变后,不用再根据进行的操作分析该操作对数据库更新的需求,也不用根据分析出的对数据库更新的需求编写相应的sql语句,这样编程人员可以将更多的精力放在开发游戏的业务逻辑层面的代码上,而不用为底层的数据库的调用而耗费过多精力,使得编程人员更便于开发大型手机游戏,减小了游戏开发周期。\n[0102] 进一步,本发明的大型手机游戏系统中还设置了可以对生成的sql语句进行优化的语句日志记录模块,这样减少了数据库更新语句的传输和执行,提高了数据库更新的效率;而且,本发明的大型手机游戏系统中还设置了可以对一定时间段内生成的sql语句进行保留的语句日志记录模块,在语句缓存处理模块出现故障、恢复后,仍然可以保证进行改变的相关数据可以安全存储到数据库中,从而保证了数据的安全性。\n[0103] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
法律信息
- 2016-09-07
- 2014-01-15
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201310353724.X
申请日: 2013.08.14
- 2013-12-11
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-04-27
|
2010-12-22
| | |
2
| |
2012-10-17
|
2011-03-22
| | |
3
| |
2013-04-03
|
2012-12-03
| | |
4
| |
2012-07-25
|
2012-01-20
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |