我正在构建一个播放应用程序,并且想要配置Apache Jena 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
但是,播放无法识别此驱动程序。有谁知道什么驱动器适合玩?我正在使用Jena 2.10.2。任何建议都会有所帮助,谢谢!
布拉德
答案 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
系统属性。