如何使用幻像DSL将播放框架连接到cassandra数据库?

时间:2015-04-03 11:03:51

标签: database playframework cassandra phantom-dsl

我是cassandra数据库的新手。我正在使用play2.2.1和mySQl数据库,但尝试迁移到cassandra数据库。我正在使用cassandra-2.1.3。虽然我可以轻松连接到mySQl db,它由application.conf文件中的以下行给出。 db.default.driver = com.mysql.jdbc.Driver db.default.url =" JDBC:MySQL的://127.0.0.1:3306 / MyDatabase的"

但是我不知道什么应该是cassandra的db.default.url。我给了db.default.driver = com.datastax.driver.core

编辑: 我已经在我的播放应用程序https://github.com/websudos/phantom中集成了幻像DSL,但该页面似乎没有说明如何连接到数据库。

编辑:

对于所有新来者,正确的地方是Getting started with Phantom,它解释了如何更详细地连接到Cassandra。

2 个答案:

答案 0 :(得分:6)

Phantom预捆绑连接器,因此您可以在执行0工作时连接到数据库。您所需要的只是扩展Connector实现,并告诉它使用哪个密钥空间以及相关的IP和端口。

只需连接到localhost:

import com.websudos.phantom.connectors.SimpleCassandraConnector


trait MyConnector extends SimpleCassandraConnector {
  implicit val keySpace = KeySpace("my_app")
}

现在剩下的就是将这个特性混合到你所有的桌子单身中,然后你就完成了。检查连接器模块,以获取有关如何使用更高级部署甚至基于服务发现的连接器的更多信息。

<强>更新

从Phantom 1.9.0开始,连接器框架经历了完全重写。

import com.outworkers.phantom.connectors.{ ContactPoint, ContactPoints }

object Defaults {
  val keySpace = ContactPoint.local.keySpace("myapp")
  // val Connector = ContactPoints(Seq("localhost", "10.4.2.2"), 9042)
}

trait Connector extends Defaults.keySpace.Connector {
  implicit val keySpace: KeySpace = KeySpace("my_app")
}

答案 1 :(得分:2)

datastax java-driver目前不支持JDBC(尽管已经打开了pull request),但即使在驱动程序上使用JDBC可能也不是与cassandra交互的理想方式。

您仍然可以将Cassandra集成到您的播放应用程序中,而不会有太多麻烦。以下是一些可能有用的参考资料: