为Apache Jena TDB播放Framework 2配置

时间:2014-02-23 02:41:31

标签: playframework playframework-2.0 jena

我正在构建一个播放应用程序,并且想要配置Apache Jena TDB,但是我也在这个数据库和postgresql中的关系数据库之间进行交换。我正确配置了postgresql数据库。这是一个两部分问题:

  1. 配置两个可互换使用的数据库的最佳方法是什么,而不是同时使用。看起来在游戏2中有两个常规选项,我可以在不同的服务器上配置数据库(似乎是同时运行数据库的最佳选择)。或者我倾向于选择在数据库配置下配置两个数据库,然后将全局对象设置为我想要使用的数据库,并在模型中使用if - else语句来确定要使用的数据集。关于哪种设计可能更适合在两个数据库之间交换的任何建议?

  2. 我需要使用哪种驱动程序进行TDB配置?我试过了:

    db.tdb.driver=org.apache.jena.jena-jdbc-driver-tdb
    db.tdb.url="jdbc:jena:tdb:location=/localhost/application"
    db.tdb.user=tdb
    db.tdb.password=password
    
  3. 但是,播放无法识别此驱动程序。有谁知道什么驱动器适合玩?我正在使用Jena 2.10.2。任何建议都会有所帮助,谢谢!

    布拉德

1 个答案:

答案 0 :(得分:0)

我不能回答第1部分不知道Play Framework,但作为Jena JDBC组件的主要开发人员,我可以尝试第2部分

您看到的连接设置略显错误,documentation的示例如下:

# Default database configuration
db.default.driver=org.h2.Driver
db.default.url=jdbc:h2:mem:play

所以看起来您希望驱动程序的类名不是您使用过的JAR名称,因此TDB配置应该大致如下所示:

db.tdb.driver=org.apache.jena.jdbc.tdb.TDBDriver
db.tdb.url=jdbc:jena:tdb:location=/localhost/application

并且不需要提供用户名/密码。

另请注意,如Connecting with JDBC文档中所述,您需要在Managing Library Dependencies文档后添加TDB驱动程序JAR作为应用程序的附加依赖项。

如果仍然无法建立连接,那么这可能是一个已知的错误JENA-646,Jena JDBC当前没有公开适当的元信息,以便Java服务提供商机制自动检测到驱动程序,如果Play依赖于此,如果不首先初始化TDBDriver类,您可能无法建立连接。您可以在代码中调用TDBDriver.register(),也可以使用JENA-646评论中详述的jdbc.drivers系统属性。