Playframework 连接到play framework中的本地h2数据库
我刚开始使用Play framework,但在执行第一步时遇到了问题。默认情况下,application.conf将内存中的数据库作为其urlPlayframework 连接到play framework中的本地h2数据库,playframework,h2,Playframework,H2,我刚开始使用Play framework,但在执行第一步时遇到了问题。默认情况下,application.conf将内存中的数据库作为其url db.default.url="jdbc:h2:mem:play" 我试着把这个改成 db.default.url="jdbc:h2:tcp://localhost/c:/Database/MyPlayDB" 但我的应用程序在进行更改后不会运行。我得到的错误是 Error in custom provider
db.default.url="jdbc:h2:mem:play"
我试着把这个改成
db.default.url="jdbc:h2:tcp://localhost/c:/Database/MyPlayDB"
但我的应用程序在进行更改后不会运行。我得到的错误是
Error in custom provider, Configuration error: Configuration error[Cannot connect to database [default]]
有人能告诉我我是否需要做任何其他的改变或者给我指出正确的方向吗
谢谢 我想您没有“在服务器模式下运行H2”
编辑:
如何在服务器模式下运行H2:
db.default.url="jdbc:h2:mem:play"
db.default.url="jdbc:h2:tcp://localhost/c:/Database/MyPlayDB"
db.default.url="jdbc:h2:tcp://localhost/c:/Database/MyPlayDB"
如果将config设置为,我得到了“自定义提供程序中的错误,配置错误:配置错误[无法连接到数据库[默认]]”
db.default.url="jdbc:h2:mem:play"
db.default.url="jdbc:h2:tcp://localhost/c:/Database/MyPlayDB"
db.default.url="jdbc:h2:tcp://localhost/c:/Database/MyPlayDB"
如果我在服务器模式下运行H2并将config设置为
db.default.url="jdbc:h2:mem:play"
db.default.url="jdbc:h2:tcp://localhost/c:/Database/MyPlayDB"
db.default.url="jdbc:h2:tcp://localhost/c:/Database/MyPlayDB"
你能告诉我在H2模式下运行它需要做什么吗?另外,我希望在运行Play应用程序时创建数据库文件。所以,如果我没有数据库,我不知道如何在服务器模式下运行H2读取答案-它是创建的,您可以通过地址“jdbc:H2:mem:play”连接到它。问题是您试图连接到“jdbc:h2:tcp://localhost/c:/Database/MyPlayDB“-所以您需要独立于播放运行h2服务器,并配置该数据库。我建议您使用默认的“jdbc:h2:mem:play”或阅读如何将h2作为服务器运行(在该版本中有链接),我没有使用内存数据库的选项。我一直在考虑运行h2服务器,但它与我们给出的步骤完全冲突。显然,这些都不是必需的。但是,我查看了导入org.h2.tools.Server;//启动TCP服务器=Server.createTcpServer(args).start();…//停止TCP服务器。停止()代码>来自文档,但我不确定必须在我的play应用程序中的何处插入。你能解释一下吗?看看我的编辑部分,你不必运行外部H2服务器。据我所知,Aadithya希望将数据库存储在一个文件中。为此,您可以在
application.conf
中使用db.default.url=“jdbc:h2:databasefilename”
。但是您必须在persistence.xml
中配置您的持久性单元。请向我们展示您的META-INF/persistence.xml和应用程序.conf的数据库部分。我的persistence.xml是空的,.conf文件具有数据库,因为url可能错误。您想将数据库存储到本地文件中,对吗?然后使用db.default.url=“jdbc:h2:databasefilename”
。那么,databasefilename应该是本地计算机上的路径还是仅仅是名称?如果它只是一个名字,它是在哪里创建的?两者都有可能。例如,使用db.default.url=“jdbc:h2:databasefolder/databasefilename”
您的数据库文件存储在应用程序根文件夹中的“databasefolder”文件夹中。