java - 更改 Java 项目的数据库类型?

标签 java mysql mongodb playframework database

这个问题是假设性的,但我还是要问。假设您使用 Play 启动一个项目并使用 mysql 数据库。稍后您决定将您的应用程序移动到诸如 Google App Engine 或 Amazon EC2 之类的平台上。或者甚至可以切换到 NoSQL 数据库,例如 MongoDB 或 Cassandra。

有什么工具可以做到这一点吗?或者您基本上需要重写您的模型吗?特别是因为 mysql 是一个关系数据库,与 Monogo 之类的东西无关,我猜这很难吗?

我问是因为,当您开始一个项目时,很明显,您可能希望在某一时刻扩展您的应用程序,并且您可能需要像 Mongo 这样的东西,但您永远不知道结果如何。 MySQL 最终可能足以满足您很长一段时间的需求。那么,当您使用 MySQL 的效率更高并且可以在必要时切换时,为什么还要费心学习使用 Mongo?

我要结合使用 Play!框架。

你有什么想法?

最佳答案

已经有一个针对此用例设计的解决方案:为 Mysql/Postgres/H2 编写一些代码,然后在 GAE(以及其他 NoSQL 数据库,例如 Hbase、sdb、mongo)中使用相同的代码,然后返回。这是一个名为 Siena 的项目,它已经与 Play 集成。它是一个基于 Activity 记录设计的轻量级对象映射框架桥接(至少尝试)SQL/NoSQL。
网址是http://www.sienaproject.com(目前的文档相对于主干代码有点过时和不完整,因为我们一直处于重构和增强的深度阶段 - 代码相当稳定,它在github上但真正的主干不是主要项目但是一个 fork http://github.com/mandubian/siena )。
Play 中有 2 个名为 play-siena 和 crudsiena 的模块,您可以在 http://www.playframework.org/modules 上找到它们。当前版本仅提供 GAE 支持,但支持 MySQL/Postgres/H2 + GAE 的版本即将推出(我正在测试)!

我是 Siena 的首席开发人员,所以请不要犹豫向我提问。
不要犹豫,加入谷歌组与我们讨论:http://groups.google.com/group/siena-discuss

问候
帕斯卡

关于java - 更改 Java 项目的数据库类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6017763/

相关文章:

java - 在带有HBase的hadoop中使用外部jar

java - 同一类上的 isInstance() 在异常处理期间返回 false

node.js - Mongoose 自定义验证失败

MongoDB 不使用简单查询的不同索引

javascript - 如何将for循环中的值推送到mongo文档?

java - 在我的方法实例中找不到符号?

java - 我的 Websocket 需要很长时间才能连接

php - LARAVEL - 按钮更改数据库中的 bool 值

mysql - 我如何将旧数据库中的用户导入到新的 Joomla MySQL 数据库中?

php - 购物车总数量仅在更新后读取购物车中的最后一个数字