java - MMORPG 中的 JPA、JDBC 与 NoSQL

标签 java jpa jdbc nosql rdbms

我们正在使用 Libgdx/Netty 开发一款 2D MMORPG 太空射击游戏,但我们遇到了无法解决的数据问题。

  • 如果我们使用 JPA 和 RDBMS,我们就可以实现 ACID 并简化数据管理代码
  • 如果我们使用 Spring 的 JDBC 宽度支持,我们可以提高速度,但会使数据管理代码变得复杂
  • 我们没有 NoSQL 开发经验,但是速度优势(这一点至关重要)会不会太大以至于我们应该放弃简单的查询

我们陷入困境,请帮助我们做出决定。

最佳答案

  1. 您当然意识到 JPA 使用 JDBC。
  2. Spring 可以像 JPA 一样轻松地实现 ACID。我不知道你所说的“速度”优势是什么。发展速度?交易速度?为什么Spring会使数据管理代码变得复杂?这又是一个不正确的说法。
  3. 您询问 NoSQL 的速度是多少?发展?运行? NoSQL 没有 ACID。如果这对你很重要,你为什么要考虑它? NoSQL 意味着“非关系型”。您的数据是相关的吗?如果是,您为什么考虑 NoSQL?

你不能通过谈论技术和猜测来决定性能问题。唯一的方法是对它们进行基准测试并获取您真正关心的交易的一些真实数据。

编写基于接口(interface)的 DAO,使用每种候选技术进行实现,并衡量实际结果。这就是如何决定使用哪种持久性技术。

你最熟悉哪一个?如果没有人了解 NoSQL,就不要使用它。如果您不了解 JPA,请不要使用它。 Spring JDBC 模板允许您使用事务编写自定义 SQL。如果您已经很了解关系数据库和 Spring,为什么不直接使用它呢?

关于java - MMORPG 中的 JPA、JDBC 与 NoSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15649084/

相关文章:

java - 不能用Hibernate调用PostgreSQL的11存储过程

JAVA-SQL-数据迁移-结果集比较失败的 JUnit 测试

java - 在 Play Framework 中,模型的更改如何以及何时与数据库架构同步?

java - 从服务器发送数据到客户端

java - Google AppEngine HRD——一致性与竞争?

java - 是否可以在不将 jar 添加到 lib 文件夹的情况下在 tomcat 中创建自定义领域?

spring-boot - 如何在gradle,intellij IDEA中使用JPA元模型?

java - 在Java中执行多重查询时出错

hibernate - 为什么 Hibernate 将 BIGINT 映射到 BigInteger

java - JDK 7 fork/join 简单示例