使用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框架定制用户数据持久化方案的主要内容,如果未能解决你的问题,请参考以下文章

Rexdb:高性能的数据持久层(ORM)框架

hibernate持久化框架

MyBatis面试题(2020)

MyBatis面试题(2020)

Hibernate day01笔记

ORM框架的前世今生