Playframework Apache Jena TDB的Play Framework 2配置

Playframework Apache Jena TDB的Play Framework 2配置,playframework,playframework-2.0,jena,Playframework,Playframework 2.0,Jena,我正在构建一个play应用程序,并希望配置ApacheJena TDB,但是我也在该数据库和postgresql中的关系数据库之间进行交换。我已正确配置postgresql数据库。这是一个由两部分组成的问题: 配置两个可交换使用(而不是同时使用)的数据库的最佳方法是什么。在重头戏2中似乎有两个常规选项,我可以在单独的服务器上配置数据库(似乎是并发运行数据库的最佳选项)。或者,我倾向于在数据库配置下配置两个数据库,然后为我想要使用的数据库设置一个全局对象,并在模型中使用if-else语句来确定使用

我正在构建一个play应用程序,并希望配置ApacheJena TDB,但是我也在该数据库和postgresql中的关系数据库之间进行交换。我已正确配置postgresql数据库。这是一个由两部分组成的问题:

  • 配置两个可交换使用(而不是同时使用)的数据库的最佳方法是什么。在重头戏2中似乎有两个常规选项,我可以在单独的服务器上配置数据库(似乎是并发运行数据库的最佳选项)。或者,我倾向于在数据库配置下配置两个数据库,然后为我想要使用的数据库设置一个全局对象,并在模型中使用if-else语句来确定使用哪个数据集。对于哪种设计更适合在两个数据库之间交换,您有什么建议吗

  • 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
    
  • 但是,play无法识别此驱动程序。有人知道什么样的车手是为游戏工作的吗?我正在使用Jena 2.10.2。任何建议都会有帮助,谢谢


    Brad

    我无法回答第1部分,因为我不知道Play框架,但作为Jena JDBC组件的主要开发人员,我可以尝试一下第2部分

    您的连接设置看起来有点错误,其示例如下:

    # 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
    
    而且不需要提供用户名/密码

    还请注意,正如他们在文档中所描述的,您需要在文档之后添加TDB驱动程序JAR作为应用程序的附加依赖项


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

    您可以查看,这是一个剧本!1个插件,但它的目的是使使用Sesame或Jena作为游戏的DB变得容易!申请。谢谢你的链接!这将是下一步,将查询结果转换为java对象。然而,首先我需要连接数据库,它不是查询结果,它是一个ORM,或者更具体地说,是一个对象三重映射器。如果您熟悉JPA,它将实现JPA接口以将bean绑定到triplestore