使用orm框架定制用户数据持久化方案
Posted littleschemer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用orm框架定制用户数据持久化方案相关的知识,希望对你有一定的参考价值。
前面一篇文章手游服务端框架之关于玩家数据的解决方案,介绍了当今游戏服务端对玩家数据进行持久化的两种方案。一种是将玩家数据通过json等格式统一打包成字符串或二进制流;另一种是根据模块功能拆分,一个模块一张用户表。
今天的主题就是介绍如何通过orm来简化上面所说的第二种持久化方式。
ORM(关系对象映射),简单来说,就是将oop世界里的对象与关系型数据库里的表记录进行映射。如果玩家数据的持久化是根据功能模块来拆分的话,那么随着游戏功能的增多,用户表的数量也会越来越多。如果对于每一张表,都需要编写对应的CRUD sql语句,那开发效率是非常低下的。但使用了orm框架,对于每一个需要进行持久化的玩家数据对象,都不再需要手动编写sql语句,这无疑是非常爽的。
至于为什么不使用Mybatics或者Hibernate这种成熟强大的ORM框架,而是选择自己造轮子设计。这里有个原因,一般游戏业务都是对单表进行增删查改(甚至不用删除),也很少需要对多张表进行联合查询。所以自己手写一套简易的orm工具即可,还可以灵活整合缓存系统。
下面逐步介绍使用的主要类文件。
1. Cacheable抽象类主要是对需要持久化的对象的一种抽象,是对象各种db状态的转换。
public abstract class Cacheable {
/** 当前实体对象的db状态 */
protected DbStatus status = DbStatus.NORMAL;
/**
* 返回当前的db状态
* @return
*/
public abstract DbStatus getStatus();
以上是关于使用orm框架定制用户数据持久化方案的主要内容,如果未能解决你的问题,请参考以下文章