【问题标题】:Play Framework 2 Configuration for Apache Jena TDBApache Jena TDB 的 Play Framework 2 配置
【发布时间】:2014-02-23 02:41:30
【问题描述】:

我正在构建一个播放应用程序并想要配置 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
    

但是,play 无法识别此驱动程序。有谁知道什么驱动程序适用于游戏?我正在使用耶拿 2.10.2。任何建议都会有所帮助,谢谢!

布拉德

【问题讨论】:

  • 您可以查看github.com/mhgrove/Imperium,这是一个游戏! 1 个插件,但它的目的是让使用 Sesame 或 Jena 作为 Play 的 DB 变得容易!应用程序。
  • 感谢您的链接!这将是下一步,将查询结果转换为 java 对象。但是,首先我需要连接数据库。
  • 这不是查询结果,它是一个 ORM,或者更具体地说,是一个 Object-Triple Mapper。如果您熟悉 JPA,它会实现 JPA 接口以将您的 bean 绑定到三重存储

标签: playframework playframework-2.0 jena


【解决方案1】:

不知道 Play 框架,我无法回答第 1 部分,但作为 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(),也可以利用jdbc.drivers 系统属性,详见JENA-646 cmets。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多