CN103440285A - 大型******及其数据库更新方法 - Google Patents
大型******及其数据库更新方法 Download PDFInfo
- Publication number
- CN103440285A CN103440285A CN201310353724XA CN201310353724A CN103440285A CN 103440285 A CN103440285 A CN 103440285A CN 201310353724X A CN201310353724X A CN 201310353724XA CN 201310353724 A CN201310353724 A CN 201310353724A CN 103440285 A CN103440285 A CN 103440285A
- Authority
- CN
- China
- Prior art keywords
- data
- class
- module
- tables
- sql 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种大型******及其数据库更新方法,所述方法包括:游戏服务器软件模块启动后,对于针对***的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表;游戏服务器软件模块接收游戏移动客户端软件模块发送的请求信息后,对其进行解析,根据解析结果以及业务需求对相关数据进行相应的操作,包括对数据类的数据进行相应改变;游戏服务器软件模块在调用数据库操作模块中的,与数据类的数据的改变方式相应的数据库操作类型的API程序时,将数据类的类名传入到API程序;API程序根据传入的类名,对具有该类名的数据表进行所述数据库操作类型的操作。该方法使得大型***更便于开发,减小了游戏开发周期。
Description
技术领域
本发明涉及数据库领域,尤其涉及一种大型******及其数据库更新方法。
背景技术
***是指运行于手机上的游戏软件。目前用来编写***最多的程序语言是Java语言,见J2ME(Java Platform,Micro Edition);其次是C语言。随着科技的发展,现在手机的功能越来越多,也越来越强大。而***也远远不是我们印象中的什么“俄罗斯方块”、“贪吃蛇”之类画面简陋,规则简单的游戏,进而发展到了可以和掌上游戏机媲美,具有很强的娱乐性和交互性的复杂形态;例如堪比电脑游戏的大型***“一代宗师”、“十年一剑”。
大型***通常为网络游戏,其是以互联网为传输媒介,以游戏运营商提供的游戏服务器和用户手持设备(移动终端)为处理终端,以游戏移动客户端软件为信息交互窗口的在线游戏。实现大型***的***,即大型******,如图1所示,包括:安装有游戏移动客户端软件的移动终端101、设置于网络侧的游戏服务器102,以及与游戏服务器102相连的游戏数据库103。
移动终端101上的游戏移动客户端软件启动后,根据用户在玩游戏的过程中发送的操作指令向游戏服务器102发送相应的请求信息;其中,移动终端可以为手机、平板电脑。
游戏服务器102上安装有对应游戏移动客户端软件的游戏服务器软件,用以对游戏服务器102接收的请求信息,进行解析后,根据解析结果以及业务需求,进行相应的操作。
例如,游戏服务器软件接收到用户升级装备的请求信息,而用户升级装备的业务需求是:首先扣除用户的货币数据,然后提升用户的装备的属性;之后检查提升用户的装备的属性后是否有可以完成的成就;如果有,更新用户的成就信息。
因此,根据用户升级装备的业务需求需要进行的操作包括:更新游戏数据库103中的用户的货币数据、更新游戏数据库103中的用户装备数据、在确定有可以完成的成就时,更新游戏数据库103中的用户成就数据。
要完成上述的操作,则需要游戏的编程人员事先根据这些业务需求,将执行这些操作的数据库更新语句,即sql(structured query language,结构化查询语言)语句编写在游戏服务器软件中。也就是说,游戏服务器软件中由编程人员编写的代码中,要包括对请求信息解析的代码、根据业务需求对相关数据进行相应操作的业务逻辑代码;以及进行相应操作后,根据操作中对数据库更新的需求所编写的sql语句代码。
例如,上述的用户的货币数据、用户装备数据、用户成就数据存储在游戏数据库103的数据表A中;那么需要通过以下sql语句完成相关操作:
更新数据表A中的用户的货币数据的sql语句;
更新数据表A中的用户装备数据的sql语句;
更新数据表A中的用户成就数据的sql语句;
本发明的发明人发现,编程人员在编写游戏服务器软件过程中,根据业务需求对相关数据进行相应操作后,再根据进行的操作分析该操作对数据库更新的需求,并编写相应的sql语句需要耗费大量的时间;这使得采用现有技术的数据库更新方法进行大型***开发的周期较长;因此,有必要提供一种数据库更新方法,基于该数据库更新方法可以更方便编程人员开发大型***,从而减小游戏开发周期。
发明内容
针对上述现有技术存在的缺陷,本发明提供了一种大型******及其数据库更新方法,使得基于该数据库更新方法的大型***更便于开发,以减小游戏开发周期。
根据本发明的一个方面,提供了一种大型******的数据库更新方法,包括:
在安装于游戏服务器上的游戏服务器软件模块启动后,对于针对***预先定义的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表;
在所述游戏服务器软件模块接收到安装于移动终端上的游戏移动客户端软件模块发送的请求信息后,对接收的请求信息进行解析;并根据解析结果以及业务需求对相关数据进行相应的操作,所述操作中包括对数据类的数据进行相应改变;
之后,所述游戏服务器软件模块在调用数据库操作模块中的,与所述数据类的数据的改变方式相应的数据库操作类型的API程序时,将所述数据类的类名传入到所述API程序;
所述API程序根据传入的类名,对具有该类名的数据表进行所述数据库操作类型的操作。
其中,所述数据类的数据的改变方式具体为:所述数据类中增加新的数据;以及,与所述数据类的数据的改变方式相应的数据库操作类型具体为数据***类型;或者
所述数据类的数据的改变方式具体为:从所述数据类中删除数据;以及,与所述数据类的数据的改变方式相应的数据库操作类型具体为数据删除类型;或者
所述数据类的数据的改变方式具体为:修改所述数据类中的数据;以及,与所述数据类的数据的改变方式相应的数据库操作类型具体为数据修改类型。
较佳地,所述对于针对***预先定义的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表,具体包括:
对于针对***预先定义的每个数据类,创建一个对应该数据类的数据表:该数据表与该数据类的名称相同,并且该数据类中定义的各属性分别映射为该数据表中的各字段。
较佳地,所述对于针对***预先定义的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表,还包括:
对于针对***预先定义的每个数据类,确定该数据类的各属性的标签;
对于该数据类的每个属性,根据该属性的标签设置对应该数据类的数据表中,对应该属性的字段的标签。
较佳地,所述API程序根据传入的类名,对具有该类名的数据表进行所述数据库操作类型的操作,具体包括:
所述API程序根据传入的类名,获取具有该类名的数据类的数据,以及具有该类名的数据表;并根据获取的数据,生成所述数据库操作类型的、对所述数据表进行操作的sql语句后,根据生成的sql语句进行数据库操作。
较佳地,在所述生成所述数据库操作类型的、对所述数据表进行操作的sql语句后,还包括:
所述API程序将生成的sql语句缓存到语句缓存处理模块中;
所述语句缓存处理模块每隔设定时间段,将本模块中缓存的sql语句进行优化后,根据优化后的sql语句进行数据库操作;
其中,所述将本模块中缓存的sql语句进行优化的方法包括:
若所述语句缓存处理模块确定出针对同一数据表,本模块中缓存有多个数据修改类型的sql语句,则将其中最后存入的sql语句保留,将其它sql语句从本模块中删除;
若所述语句缓存处理模块确定出针对同一数据表,本模块中缓存有在先存入的数据***类型的sql语句,以及在后存入的数据删除类型的sql语句;且所述数据***类型的sql语句中涉及***操作的数据,与所述数据删除类型的sql语句中涉及删除操作的数据相同,则将所述数据***类型的sql语句和数据删除类型的sql语句从本模块中删除。
根据本发明的另一个方面,还提供了一种大型******,包括:
安装于移动终端上的游戏移动客户端软件模块,接收用户的操作指令后,向游戏服务器发送相应的请求信息;
安装于游戏服务器上的数据库操作模块,其包括多种数据库操作类型的API程序;
安装于游戏服务器上的游戏服务器软件模块,其启动后对于针对***预先定义的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表;以及在接收到所述请求信息后,对接收的请求信息进行解析;并根据解析结果以及业务需求对相关数据进行相应的操作,所述操作中包括对数据类的数据进行相应改变;之后,在调用所述数据库操作模块中的,与所述数据类的数据的改变方式相应的数据库操作类型的API程序时,将所述数据类的类名传入到所述API程序;所述API程序根据传入的类名,对具有该类名的数据表进行所述数据库操作类型的操作。
进一步,所述大型******,还包括:语句缓存处理模块;以及
所述数据库操作模块中的API程序具体用于根据传入的类名,获取具有该类名的数据类的数据,以及具有该类名的数据表;并根据获取的数据,生成所述数据库操作类型的、对所述数据表进行操作的sql语句后,将生成的sql语句缓存到所述语句缓存处理模块中;
所述语句缓存处理模块每隔设定时间段,将本模块中缓存的sql语句进行优化后,根据优化后的sql语句进行数据库操作。
进一步,所述大型******,还包括:语句日志记录模块;
所述API程序还用于将生成的sql语句记录到所述语句日志记录模块中;以及
所述语句日志记录模块将从当前时间之前的至少两个设定时间段内的sql语句进行保留;以及在所述语句缓存处理模块出现故障、恢复后,将本模块中记录的sql语句写入到所述语句缓存处理模块中。
进一步,所述大型******,还包括:数据缓存模块;以及
所述游戏服务器软件模块还用于在所述根据解析结果以及业务需求对相关数据进行相应的操作中,从所述数据缓存模块中读取进行所述操作所需要的数据;并在进行相应的操作后,将进行所述操作后得到的数据缓存到所述数据缓存模块中。
本发明技术方案中,大型******可以对于针对***预先定义的每个数据类,生成对应该数据类的数据表;并在数据类中的相关数据发生改变后,通过执行基于该数据类的相应的数据库操作,来实现数据库的更新。从而,编程人员在编写游戏服务器软件过程中,根据业务需求对相关数据进行相应操作,对操作中相关的数据类中的数据进行改变后,不用再根据进行的操作分析该操作对数据库更新的需求编写相应的sql语句,这样编程人员可以将更多的精力放在开发游戏的业务逻辑层面的代码上,而不用为底层的数据库的调用而耗费过多精力,使得编程人员更便于开发大型***,减小了游戏开发周期。
进一步,本发明的大型******中还设置了可以对生成的sql语句进行优化的语句日志记录模块,这样减少了数据库更新语句的传输和执行,提高了数据库更新的效率;而且,本发明的大型******中还设置了可以对一定时间段内生成的sql语句进行保留的语句日志记录模块,在语句缓存处理模块出现故障、恢复后,仍然可以保证进行改变的相关数据可以安全存储到数据库中,从而保证了数据的安全性。
附图说明
图1为现有技术的大型******的架构图;
图2为本发明实施例的大型******的一种内部结构框图;
图3为本发明实施例的大型******的数据库更新方法的流程图;
图4为本发明实施例的大型******的另一种内部结构框图。
具体实施方式
以下将结合附图对本发明的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。
本申请使用的“模块”、“***”等术语旨在包括与计算机相关的实体,例如但不限于硬件、固件、软硬件组合、软件或者执行中的软件。例如,模块可以是,但并不仅限于:处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。举例来说,计算设备上运行的应用程序和此计算设备都可以是模块。一个或多个模块可以位于执行中的一个进程和/或线程内,一个模块也可以位于一台计算机上和/或分布于两台或更多台计算机之间。
本发明的发明人发现,在大型***的开发过程中,编程人员通常使用面向对象的语言进行程序编写;面向对象语言(Object-Oriented Language)是一种以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分;面向对象语言中提供了类、继承等成分;一个类是用来描述所有属于这个类的对象的共同结构的。
在一个大型***软件中通常包括两种类,一种类面向业务称为业务类,一种类面向数据称为数据类;在大型***软件中,若数据类中的相关数据发生了改变那么就可能需要涉及到对数据库进行更新的操作。
那么,本发明的发明人考虑到,若数据类中的相关数据发生改变后,执行基于该数据类的相应的数据库操作;从而编程人员在编写游戏服务器软件过程中,根据业务需求对相关数据进行相应操作,对操作中相关的数据类中的数据进行改变后,不用再根据进行的操作分析该操作对数据库更新的需求(例如,分析出需要对哪个数据表中的哪个字段进行什么样的操作)、编写相应的sql语句,而是执行一下基于该数据类的相应的数据库操作就可以了。这样,编程人员可以将更多的精力放在开发游戏的业务逻辑层面的代码上,而不用为底层的数据库的调用而耗费过多精力;使得编程人员更便于开发大型***,减小了游戏开发周期。
下面结合附图详细说明本发明的技术方案。
基于上述的分析和思路,本发明的可以实现大型***的***,即大型******,内部结构框图如图2所示,包括:安装于移动终端上的游戏移动客户端软件模块201、安装于游戏服务器上的游戏服务器软件模块202,以及基于数据类的数据库操作模块203。
安装于移动终端上的游戏移动客户端软件模块201可以与现有的游戏移动客户端软件相同,接收用户的操作指令后,向游戏服务器发送相应的请求信息;并在接收到游戏服务器返回的信息后进行相应的游戏画面的显示。
安装于游戏服务器上的游戏服务器软件模块202则与现有的游戏服务器软件不同:游戏服务器软件模块202中预先定义了针对***的各数据类,并生成对应各数据类的数据表;在接收到游戏移动客户端软件模块201发送的请求信息后,对接收的请求信息进行解析,根据解析结果以及业务需求对相关数据进行相应的操作之后,可以调用基于数据类的数据库操作模块203中的API(Application Programming Interface,应用程序接口)程序,调用的API程序对数据库中的数据表进行数据***、删除、修改的操作;其中,数据库与游戏服务器相连。
基于数据类的数据库操作模块203包括多种数据库操作类型的API程序;比如:
数据库操作类型为数据***类型的API程序:int Save(TModel tModel);
数据库操作类型为数据删除类型的API程序:int Delete(TModel tModel);
数据库操作类型为数据修改类型的API程序:int Update(TModel tModel);其中,括号内为传入API程序的参数,即数据类的类名。
基于上述的大型******的数据库更新方法的流程,如图3所示,包括如下步骤:
S301:游戏服务器软件模块202启动后,对于针对***预先定义的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表。
具体地,对于针对***预先定义的每个数据类,创建一个对应该数据类的数据表:该数据表与该数据类的名称相同,并且该数据类中定义的各属性分别映射为该数据表中的各字段;进一步,还可以对于针对***预先定义的每个数据类,确定该数据类的各属性的标签;对于该数据类的每个属性,根据该属性的标签设置对应该数据类的数据表中,对应该属性的字段的标签;具体过程可以是,游戏服务器软件模块202的进程启动后,对于预先定义的数据类通过反射来生成相关的元数据;之后,执行建表命令时,对应各数据类的元数据,分别生成创建对应各数据类的数据表的语句;例如,生成的创建“用户”数据表的语句如下:
CREATE TABLE User(
‘UserId’VARCHAR(30)NOT NULL DEFAULT‘’,
‘UserName’VARCHAR(50)DEFAULT NULL,
‘Gold’INT(11)DEFAULT NULL,
PRIMARY KEY(‘UserId’)
)
其中,创建的表中的字段包括“UserId”(用户ID)、“UserName”(用户名)、“Gold”(金币);此外还包括字段“UserId”的标签,即主键标签(Primarykey)。
事实上,在步骤S301结束后,若游戏移动客户端软件模块201接收到用户的操作指令,向游戏服务器软件模块202发送相应的请求信息,则大型******根据用户的请求信息执行下述步骤完成数据库的更新:
S302:在游戏服务器软件模块202接收到游戏移动客户端软件模块201发送的请求信息后,对接收的请求信息进行解析;并根据解析结果以及业务需求对相关数据进行相应的操作,所述操作中包括对数据类的数据进行相应改变。
例如,若游戏服务器软件模块202接收到游戏移动客户端软件模块201发送的请求信息,并对接收的请求信息进行解析后,得到的解析结果为用户升级装备,则游戏服务器软件模块202首先对货币数据类中的货币数据进行改变(扣除一部分货币),然后对装备数据类中的装备数据进行改变(提升用户的装备的属性);若装备数据类中的装备数据改变之后,用户有可以完成的成就,则对成就数据类中的成就数据进行改变(更新用户的成就信息)。
S303:游戏服务器软件模块202在调用数据库操作模块203中的,与所述数据类的数据的改变方式相应的数据库操作类型的API程序时,将所述数据类的类名传入到该API程序。
具体地,在上述步骤S302中根据解析结果以及业务需求对数据类的数据进行相应改变后,编程人员会在后续进行如本步骤S303所述的调用数据库操作模块203的API程序操作:
在此过程中,若上述步骤S302根据解析结果以及业务需求对相关数据进行相应的操作中,对数据类的数据的改变方式是:在所述数据类中增加新的数据,则本步骤S303中调用的API程序的数据库操作类型是与该数据类的数据的改变方式相应的数据库操作类型,即数据***类型;
若上述步骤S302根据解析结果以及业务需求对相关数据进行相应的操作中,对数据类的数据的改变方式是:从所述数据类中删除数据,则本步骤S303中调用的API程序的数据库操作类型是与该数据类的数据的改变方式相应的数据库操作类型,即数据删除类型;
若上述步骤S302根据解析结果以及业务需求对相关数据进行相应的操作中,对数据类的数据的改变方式是:修改所述数据类中的数据,则本步骤S303中调用的API程序的数据库操作类型是与该数据类的数据的改变方式相应的数据库操作类型,即数据修改类型。
由于在数据类中的相关数据发生改变后,编程人员仅需要获知相关数据的改变方式,调用数据库操作模块的API程序即可,不再需要根据对相关数据进行的操作分析该操作对数据库更新的需求,也不必根据该操作编写相应的sql语句,这样,编程人员不用为底层的数据库的调用而耗费过多精力;使得编程人员更便于开发大型***,减小了游戏开发周期。
S304:该API程序根据传入的类名,对具有该类名的数据表进行所述数据库操作类型的操作。
具体地,该API程序根据传入的类名,获取具有该类名的数据类的数据,以及具有该类名的数据表;并根据获取的数据,生成所述数据库操作类型的、对所述数据表进行操作的sql语句后,根据生成的sql语句进行数据库操作。
例如,若传入到该API程序的类名为货币数据类,所述数据库操作类型为数据修改类型,则该API程序对货币数据表进行修改,具体可以对货币数据表中的货币字段进行修改。
作为一种更优的实施方式,本发明还提供了一种大型******,内部结构框图如图4所示,包括:安装于移动终端上的游戏移动客户端软件模块401、安装于游戏服务器上的游戏服务器软件模块402、基于数据类的数据库操作模块403,以及语句缓存处理模块404。
游戏移动客户端软件模块401与上述的游戏移动客户端软件模块201的功能相同;游戏服务器软件模块402与上述的游戏服务器软件模块202的功能相同,此处不再赘述。
基于数据类的数据库操作模块403包括多种数据库操作类型的API程序;游戏服务器软件模块402在调用数据库操作模块403中的API程序时,将数据类的类名传入到该API程序后,该API程序根据传入的类名,获取具有该类名的数据类的数据,以及具有该类名的数据表;并根据获取的数据,生成所述数据库操作类型的、对所述数据表进行操作的sql语句,并将生成的sql语句缓存到语句缓存处理模块404中。
语句缓存处理模块404每隔设定时间段,将本模块中缓存的sql语句进行优化后,根据优化后的sql语句进行数据库操作;其中,语句缓存处理模块404将本模块中缓存的sql语句进行优化具体可以包括:
若语句缓存处理模块404确定出针对同一数据表,本模块中缓存有多个数据修改类型的sql语句,则将其中最后存入的sql语句保留,将其它sql语句从本模块中删除;若语句缓存处理模块404确定出针对同一数据表,本模块中缓存有在先存入的数据***类型的sql语句,以及在后存入的数据删除类型的sql语句;且数据***类型的sql语句中涉及***操作的数据,与数据删除类型的sql语句中涉及删除操作的数据相同,则将数据***类型的sql语句和数据删除类型的sql语句从本模块中删除。
例如,若用户在设定时间段内进行了多次修改货币数据的操作,则API会将其生成的多条对货币数据表进行货币修改操作的sql语句缓存到语句缓存模块404中;语句缓存模块404仅保留最后存入的一条对货币数据表进行货币修改操作的sql语句,并仅根据该条sql语句进行数据库操作;
再如,用户获得一件装备后,在设定时间段内,又把该装备卖了,则API会将其生成的一条对装备数据表进行该装备***操作的sql语句,以及一条对装备数据表进行该装备删除操作的sql语句缓存到语句缓存模块404中;语句缓存模块404将两条sql语句进行删除,不进行数据库操作;这样,减少了数据库更新语句的传输和执行,提高了数据库更新的效率;而且,用户进行数据库更新的操作越频繁,数据库更新的效率的提高也就越明显。
进一步,如图4所示的大型******还可包括:语句日志记录模块405。
相应地,数据库操作模块403中的API程序还可将生成的sql语句记录到语句日志记录模块405中。
语句日志记录模块405将从当前时间之前的至少两个设定时间段内的sql语句进行保留;以及在语句缓存处理模块404出现故障、恢复后,将本模块中记录的sql语句写入到语句缓存处理模块404中。这样,在语句缓存处理模块404出现故障、恢复后,仍然可以保证进行改变的相关数据可以安全存储到数据库中,保证了数据的安全性。
如图2、图4所示的大型******,还可包括:数据缓存模块;
相应地,游戏服务器软件模块202/游戏服务器软件模块402还用于在根据解析结果以及业务需求对相关数据进行相应的操作中,从数据缓存模块中读取进行所述操作所需要的数据;并在进行相应的操作后,将进行所述操作后得到的数据缓存到数据缓存模块中。
本发明技术方案中,大型******可以对于针对***预先定义的每个数据类,生成对应该数据类的数据表;并在数据类中的相关数据发生改变后,通过执行该数据类所对应的数据表的相应数据库操作,来实现数据库的更新。从而,编程人员在编写游戏服务器软件过程中,根据业务需求对相关数据进行相应操作,对操作中相关的数据类中的数据进行改变后,不用再根据进行的操作分析该操作对数据库更新的需求,也不用根据分析出的对数据库更新的需求编写相应的sql语句,这样编程人员可以将更多的精力放在开发游戏的业务逻辑层面的代码上,而不用为底层的数据库的调用而耗费过多精力,使得编程人员更便于开发大型***,减小了游戏开发周期。
进一步,本发明的大型******中还设置了可以对生成的sql语句进行优化的语句日志记录模块,这样减少了数据库更新语句的传输和执行,提高了数据库更新的效率;而且,本发明的大型******中还设置了可以对一定时间段内生成的sql语句进行保留的语句日志记录模块,在语句缓存处理模块出现故障、恢复后,仍然可以保证进行改变的相关数据可以安全存储到数据库中,从而保证了数据的安全性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种大型******的数据库更新方法,其特征在于,包括:
在安装于游戏服务器上的游戏服务器软件模块启动后,对于针对***预先定义的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表;
在所述游戏服务器软件模块接收到安装于移动终端上的游戏移动客户端软件模块发送的请求信息后,对接收的请求信息进行解析;并根据解析结果以及业务需求对相关数据进行相应的操作,所述操作中包括对数据类的数据进行相应改变;
之后,所述游戏服务器软件模块在调用数据库操作模块中的,与所述数据类的数据的改变方式相应的数据库操作类型的API程序时,将所述数据类的类名传入到所述API程序;
所述API程序根据传入的类名,对具有该类名的数据表进行所述数据库操作类型的操作。
2.如权利要求1所述的方法,其特征在于,所述数据类的数据的改变方式具体为:所述数据类中增加新的数据;以及,与所述数据类的数据的改变方式相应的数据库操作类型具体为数据***类型;或者
所述数据类的数据的改变方式具体为:从所述数据类中删除数据;以及,与所述数据类的数据的改变方式相应的数据库操作类型具体为数据删除类型;或者
所述数据类的数据的改变方式具体为:修改所述数据类中的数据;以及,与所述数据类的数据的改变方式相应的数据库操作类型具体为数据修改类型。
3.如权利要求2所述的方法,其特征在于,所述对于针对***预先定义的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表,具体包括:
对于针对***预先定义的每个数据类,创建一个对应该数据类的数据表:该数据表与该数据类的名称相同,并且该数据类中定义的各属性分别映射为该数据表中的各字段。
4.如权利要求3所述的方法,其特征在于,所述对于针对***预先定义的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表,还包括:
对于针对***预先定义的每个数据类,确定该数据类的各属性的标签;
对于该数据类的每个属性,根据该属性的标签设置对应该数据类的数据表中,对应该属性的字段的标签。
5.如权利要求1-4任一所述的方法,其特征在于,所述API程序根据传入的类名,对具有该类名的数据表进行所述数据库操作类型的操作,具体包括:
所述API程序根据传入的类名,获取具有该类名的数据类的数据,以及具有该类名的数据表;并根据获取的数据,生成所述数据库操作类型的、对所述数据表进行操作的sql语句后,根据生成的sql语句进行数据库操作。
6.如权利要求5所述的方法,其特征在于,在所述生成所述数据库操作类型的、对所述数据表进行操作的sql语句后,还包括:
所述API程序将生成的sql语句缓存到语句缓存处理模块中;
所述语句缓存处理模块每隔设定时间段,将本模块中缓存的sql语句进行优化后,根据优化后的sql语句进行数据库操作;
其中,所述将本模块中缓存的sql语句进行优化的方法包括:
若所述语句缓存处理模块确定出针对同一数据表,本模块中缓存有多个数据修改类型的sql语句,则将其中最后存入的sql语句保留,将其它sql语句从本模块中删除;
若所述语句缓存处理模块确定出针对同一数据表,本模块中缓存有在先存入的数据***类型的sql语句,以及在后存入的数据删除类型的sql语句;且所述数据***类型的sql语句中涉及***操作的数据,与所述数据删除类型的sql语句中涉及删除操作的数据相同,则将所述数据***类型的sql语句和数据删除类型的sql语句从本模块中删除。
7.一种大型******,其特征在于,包括:
安装于移动终端上的游戏移动客户端软件模块,接收用户的操作指令后,向游戏服务器发送相应的请求信息;
安装于游戏服务器上的数据库操作模块,其包括多种数据库操作类型的API程序;
安装于游戏服务器上的游戏服务器软件模块,其启动后对于针对***预先定义的每个数据类,生成对应该数据类、并与该数据类具有相同类名的数据表;以及在接收到所述请求信息后,对接收的请求信息进行解析;并根据解析结果以及业务需求对相关数据进行相应的操作,所述操作中包括对数据类的数据进行相应改变;之后,在调用所述数据库操作模块中的,与所述数据类的数据的改变方式相应的数据库操作类型的API程序时,将所述数据类的类名传入到所述API程序;所述API程序根据传入的类名,对具有该类名的数据表进行所述数据库操作类型的操作。
8.如权利要求7所述的***,其特征在于,还包括:语句缓存处理模块;以及
所述数据库操作模块中的API程序具体用于根据传入的类名,获取具有该类名的数据类的数据,以及具有该类名的数据表;并根据获取的数据,生成所述数据库操作类型的、对所述数据表进行操作的sql语句后,将生成的sql语句缓存到所述语句缓存处理模块中;
所述语句缓存处理模块每隔设定时间段,将本模块中缓存的sql语句进行优化后,根据优化后的sql语句进行数据库操作。
9.如权利要求8所述的***,其特征在于,还包括:语句日志记录模块;
所述API程序还用于将生成的sql语句记录到所述语句日志记录模块中;以及
所述语句日志记录模块将从当前时间之前的至少两个设定时间段内的sql语句进行保留;以及在所述语句缓存处理模块出现故障、恢复后,将本模块中记录的sql语句写入到所述语句缓存处理模块中。
10.如权利要求8或9所述的***,其特征在于,还包括:数据缓存模块;以及
所述游戏服务器软件模块还用于在所述根据解析结果以及业务需求对相关数据进行相应的操作中,从所述数据缓存模块中读取进行所述操作所需要的数据;并在进行相应的操作后,将进行所述操作后得到的数据缓存到所述数据缓存模块中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310353724.XA CN103440285B (zh) | 2013-08-14 | 2013-08-14 | 大型******及其数据库更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310353724.XA CN103440285B (zh) | 2013-08-14 | 2013-08-14 | 大型******及其数据库更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103440285A true CN103440285A (zh) | 2013-12-11 |
CN103440285B CN103440285B (zh) | 2016-09-07 |
Family
ID=49693977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310353724.XA Active CN103440285B (zh) | 2013-08-14 | 2013-08-14 | 大型******及其数据库更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103440285B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103927168A (zh) * | 2014-04-02 | 2014-07-16 | 北京中交兴路车联网科技有限公司 | 一种面向对象的数据模型持久化的方法及装置 |
CN104601562A (zh) * | 2015-01-04 | 2015-05-06 | 福建天晴数码有限公司 | 游戏服务器与数据库的交互方法和*** |
CN105045789A (zh) * | 2015-02-15 | 2015-11-11 | 北京乐动卓越信息技术有限公司 | 一种游戏服务器数据库缓存方法及*** |
CN105056529A (zh) * | 2015-08-13 | 2015-11-18 | 北京乐动卓越科技有限公司 | 一种玩家数据的管理***及管理方法 |
CN108647283A (zh) * | 2018-05-04 | 2018-10-12 | 武汉灵动在线科技有限公司 | 一种游戏数据配置敏捷生成与解析方法 |
WO2019104923A1 (zh) * | 2017-11-29 | 2019-06-06 | 武汉斗鱼网络科技有限公司 | 数据库分离设计方法及装置、数据库调用方法及装置、终端设备、可读存储介质 |
CN109933573A (zh) * | 2019-01-30 | 2019-06-25 | 北京融链科技有限公司 | 数据库业务更新方法、装置及*** |
CN111352918A (zh) * | 2018-12-21 | 2020-06-30 | 卓望数码技术(深圳)有限公司 | 一种终端数据库数据迁移方法及*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7249140B1 (en) * | 2002-05-31 | 2007-07-24 | Ncr Corp. | Restartable scalable database system updates with user defined rules |
CN102033948A (zh) * | 2010-12-22 | 2011-04-27 | 中国农业银行股份有限公司 | 一种数据更新方法和装置 |
US20110252282A1 (en) * | 2010-04-08 | 2011-10-13 | Microsoft Corporation | Pragmatic mapping specification, compilation and validation |
CN102609488A (zh) * | 2012-01-20 | 2012-07-25 | 北京星网锐捷网络技术有限公司 | 客户端及其数据查询方法、服务端和数据查询*** |
CN102741843A (zh) * | 2011-03-22 | 2012-10-17 | 青岛海信传媒网络技术有限公司 | 从数据库中读取数据的方法及装置 |
CN103020193A (zh) * | 2012-12-03 | 2013-04-03 | 北京奇虎科技有限公司 | 处理数据库操作请求的方法和设备 |
US8473519B1 (en) * | 2008-02-25 | 2013-06-25 | Cisco Technology, Inc. | Unified communication audit tool |
-
2013
- 2013-08-14 CN CN201310353724.XA patent/CN103440285B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7249140B1 (en) * | 2002-05-31 | 2007-07-24 | Ncr Corp. | Restartable scalable database system updates with user defined rules |
US8473519B1 (en) * | 2008-02-25 | 2013-06-25 | Cisco Technology, Inc. | Unified communication audit tool |
US20110252282A1 (en) * | 2010-04-08 | 2011-10-13 | Microsoft Corporation | Pragmatic mapping specification, compilation and validation |
CN102033948A (zh) * | 2010-12-22 | 2011-04-27 | 中国农业银行股份有限公司 | 一种数据更新方法和装置 |
CN102741843A (zh) * | 2011-03-22 | 2012-10-17 | 青岛海信传媒网络技术有限公司 | 从数据库中读取数据的方法及装置 |
CN102609488A (zh) * | 2012-01-20 | 2012-07-25 | 北京星网锐捷网络技术有限公司 | 客户端及其数据查询方法、服务端和数据查询*** |
CN103020193A (zh) * | 2012-12-03 | 2013-04-03 | 北京奇虎科技有限公司 | 处理数据库操作请求的方法和设备 |
Non-Patent Citations (1)
Title |
---|
坏小子: "DAO(一)", 《HTTP://BLOG.SINA.COM.CN/S/BLOG_6FD9615D01010B0H.HTML》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103927168A (zh) * | 2014-04-02 | 2014-07-16 | 北京中交兴路车联网科技有限公司 | 一种面向对象的数据模型持久化的方法及装置 |
CN104601562A (zh) * | 2015-01-04 | 2015-05-06 | 福建天晴数码有限公司 | 游戏服务器与数据库的交互方法和*** |
CN104601562B (zh) * | 2015-01-04 | 2017-12-22 | 福建天晴数码有限公司 | 游戏服务器与数据库的交互方法和*** |
CN105045789A (zh) * | 2015-02-15 | 2015-11-11 | 北京乐动卓越信息技术有限公司 | 一种游戏服务器数据库缓存方法及*** |
CN105056529A (zh) * | 2015-08-13 | 2015-11-18 | 北京乐动卓越科技有限公司 | 一种玩家数据的管理***及管理方法 |
CN105056529B (zh) * | 2015-08-13 | 2018-11-09 | 北京乐动卓越科技有限公司 | 一种玩家数据的管理***及管理方法 |
WO2019104923A1 (zh) * | 2017-11-29 | 2019-06-06 | 武汉斗鱼网络科技有限公司 | 数据库分离设计方法及装置、数据库调用方法及装置、终端设备、可读存储介质 |
CN108647283A (zh) * | 2018-05-04 | 2018-10-12 | 武汉灵动在线科技有限公司 | 一种游戏数据配置敏捷生成与解析方法 |
CN111352918A (zh) * | 2018-12-21 | 2020-06-30 | 卓望数码技术(深圳)有限公司 | 一种终端数据库数据迁移方法及*** |
CN111352918B (zh) * | 2018-12-21 | 2023-05-23 | 卓望数码技术(深圳)有限公司 | 一种终端数据库数据迁移方法及*** |
CN109933573A (zh) * | 2019-01-30 | 2019-06-25 | 北京融链科技有限公司 | 数据库业务更新方法、装置及*** |
CN109933573B (zh) * | 2019-01-30 | 2021-06-01 | 北京融链科技有限公司 | 数据库业务更新方法、装置及*** |
Also Published As
Publication number | Publication date |
---|---|
CN103440285B (zh) | 2016-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103440285A (zh) | 大型******及其数据库更新方法 | |
CN109840429B (zh) | 智能合约部署、调用方法和装置 | |
US8635253B2 (en) | Decorated model architecture for efficient model-driven application development | |
CN112558980A (zh) | 多软件包管理方法及装置 | |
CN106201613A (zh) | 预热软件安装 | |
CN101101550B (zh) | 将新用户界面映射到已有的整合界面的方法和*** | |
CN112764751B (zh) | 接口生成方法和装置、接口请求方法和装置及存储介质 | |
CN111881042B (zh) | 自动化测试脚本的生成方法、装置和电子设备 | |
US20170351506A1 (en) | Automating feature graduation | |
CN110737682A (zh) | 一种缓存操作方法、装置、存储介质和电子设备 | |
US20120158788A1 (en) | System and Method for Modular Business Applications | |
CN102760096A (zh) | 测试用数据的生成方法、单元测试方法以及单元测试*** | |
CN110764839A (zh) | 一种业务处理流程配置方法、业务请求处理方法及装置 | |
EP3869377A1 (en) | Method and apparatus for data processing based on smart contract, device and storage medium | |
CN106850650B (zh) | 用于游戏客户端访问数据的方法及客户端游戏*** | |
CN112148278A (zh) | 可视化的区块链智能合约框架及智能合约开发部署方法 | |
CN104881454A (zh) | 参数的更新方法及*** | |
CN101174222A (zh) | 数据版本升级方法 | |
CN110134696B (zh) | 一种基于大数据的全面预算编审方法、装置及*** | |
CN102541544A (zh) | 树形控件的处理方法、装置及*** | |
CN110019131A (zh) | 一种复盘业务的方法和装置 | |
CN112037051A (zh) | 清算账户开户方法及装置 | |
CN111191180A (zh) | ***领域的微服务***的构建方法、装置及存储介质 | |
EP2466461A2 (en) | System and method for modular business applications | |
CN105653341A (zh) | 一种网络***客户端的升级方法、装置及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |