在页游中,大部分的开发模式都是:客户端(as3)+ 服务端(java)+ 数据库(mysql)。

在这3个部分会有一个相同的部分就是数据结构。比如一个用户数据,在客户端使用类 UserVO(as3) 来表示,在服务端使用 UserVO(java)来表示,在数据库中数据表 t_user(mysql),这时在服务端(java)从数据库(mysql)中查询出用户数据后,需要转换成 UserVO(java)对象,再传输到客户端,需要转换成 UserVO(as3)对象。如果在开发中要在 as3 中写一个 UserVO 类,再在 java 中写一个 UserVO 类,最后再写一个 mysql 的建表语句 t_user,这在任何一个应用或者游戏中都是一个庞大的工作量(数据类超级多),而且在每次要更改、添加或者删除一个字段名或者类型时,相信每个程序员都会崩溃到砸电脑吧。

另外在客户端和服务端交互中会有一些公用的信息,比如 登录命令(取值1,也可以是字符串“login”),当服务器收到该命令(1)时,服务器必需很清楚知道这个 1 是代表登录请求,而且你肯定不会希望在程序中直接写 1 来做为判断的依据的。这时客户端和服务器会都有一套相同取值的常量定义,游戏中的请求命令绝对是一个庞大的集合,所以你也不会希望每次都去维护两套一样的常量。除了请求命令外,还有一些其它常量,比如玩家角色性别用什么值表示,玩家每个种族用什么值表示等等。

总结一下,在游戏开发中,我们总会希望在一些需要重复定义和维护的数据时,能只去关注一套数据,然后所有(客户端、服务器,甚至数据库都自动一致了)。还是用“用户数据”举个例子,比如定义用户拥有的字段:id(标识 - 整数类型),name(昵称 - 字符串类型,mysql数据库还有长度,假设为32),sex(性别 - 整数,0 代表 男,1 代表 女),然后能自动生成 as3 的 UserVO类,java 的 UserVO类,以及 mysql 的建表脚本 t_user。然后定义请求命令 LOGIN(整数) 取值为 1,然后也能自动生成 as3 的常量 LOGIN:int = 1,java 的常量 int LOGIN = 1。

然后就有了现在的自动工具 AutoScript.jar,在配置好需要的 数据对象和常量后就可以直接生成对应的 as3、java 数据类以及 mysql 建表语句。

as3+java+mysql(mybatis) 数据自动工具(一)的更多相关文章

  1. as3+java+mysql(mybatis) 数据自动工具(四)

    现在介绍一下只配置 as3 与 java 公用的数据类,这种配置一般是该数据类只需要在 as3 与 java 之间转换,跟数据库没有关系.比如在客户端与服务端的数据交换中,需要定义一个统一返回请求的数 ...

  2. as3+java+mysql(mybatis) 数据自动工具(七) - 完结

    autoscript packed 文件地址:http://pan.baidu.com/s/1dDvgcO5 如果需要项目源码的话,可以留下邮箱,先声明一下,该工具主要是为了实现自动同步输出代码类文件 ...

  3. as3+java+mysql(mybatis) 数据自动工具(三)

    介绍一下数据类配置,该数据类配置主要用于需要将数据库 mysql 数据转换成 java 对象,再转换为 as3 对象的数据类 配置文件为 xml 格式. <objects> <obj ...

  4. as3+java+mysql(mybatis) 数据自动工具(二)

    AutoScript 项目结构如下图 ---AutoScript.java 为程序入口 ---com.autoscript.object 同步 as3 和 java 的数据类 ---com.autos ...

  5. as3+java+mysql(mybatis) 数据自动工具(五)

    现在介绍常量的配置,主要用于客户端(as3)与服务端(java)之间的常量同步,比如错误码.请求标识等 配置格式: <macros name="Macros" groupSt ...

  6. as3+java+mysql(mybatis) 数据自动工具(六)

    这篇来写一些常量定义的实例.我一般在配置常量的时候,都会让 bitOffset = 20,这样是一个比较好的分配,就是每个分组可以有 0xFFFFF(1048575) 个常量,0xFFF(4095) ...

  7. java+Mysql大数据的一些优化技巧

    众所周知,java在处理数据量比较大的时候,加载到内存必然会导致内存溢出,而在一些数据处理中我们不得不去处理海量数据,在做数据处理中,我们常见的手段是分解,压缩,并行,临时文件等方法; 例如,我们要将 ...

  8. Java+MySql图片数据保存与读取的具体实例

    1.创建表: drop table if exists photo;CREATE TABLE photo (    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ...

  9. Java+MySql图片数据保存

    之前一直没有做过涉及到图片存储的应用,最近要做的东东涉及到了这个点,就做了一个小的例子算是对图片存储的初试吧! 1.创建表: drop table if exists photo; CREATE TA ...

随机推荐

  1. apache 工作模式

    apache三种工作模式: prefork(2.4前默认)/worker/event(2.4默认)内容整理来自以下网站http://m.blog.csdn.net/article/details?id ...

  2. memcached完全剖析--1

    memcached的基础 翻译一篇技术评论社的文章,是讲memcached的连载.fcicq同学说这个东西很有用,希望大家喜欢. 发表日:2008/7/2 作者:长野雅广(Masahiro Nagan ...

  3. 利用getComputedStyle方法获取元素css的属性值

    在平时的工作中有时候会碰到需要获取元素当前样式的问题,查了一下可以用getComputedStyle这个方法来获取元素计算后的样式(有些我们在css里面没有写的,浏览器默认的样式也可以获得) getC ...

  4. C语言到底怎么了?

    自2015年11月开始,所有C语言系列都呈现出衰落之势.在超过15年的时间里,C语言在编程语言排行榜中的占比一直有15%-20%,但今年却突然急转直下,目前占比已不足10%,且目前看来回天乏力. 那么 ...

  5. Django视图与网址传参

    目的:采用/add?a=1&b=2  这样get/post方法进行 修改一下mysite/views.py文件 from django.shortcuts import renderfrom ...

  6. python的生成器

    1.生成器 >>> def func1(): ... yield 0 ... yield 1 ... >>> a=func1() >>> a.ne ...

  7. hive 中的Sort By、 Order By、Cluster By、Distribute By 区别

    Order by: order by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)只有一个reducer,会导致当输入规模较大时,需要较长的计算时间.在hive ...

  8. 【已解决】Vmware无法创建虚拟网卡的问题

    最近因为各种需要,要在虚拟机里使用桥接方式连接.但是不管怎么操作,都无法添加虚拟网卡.连续好多天需要用到桥接上网,今儿多方搜索,找到了解决方案. 参考资料:http://tieba.baidu.com ...

  9. scrollview始终显示滚动条 Android

    设置scrollview的:android:fadeScrollbars="false"表示始终显示垂直滚动条

  10. join的一对多,去除重复,排序优先的group方法

    想将问题列表按照最新回答来排列.但问题和回答是分拆在两张表来存放的.所以,要完成上述需求,需从主表“问题”取显示数据,但是得按照次表(回答)的更新日期来排序. 用join来做,始终无法去除重复,折腾了 ...