让JDBC连接在play框架(java)中工作

让JDBC连接在play框架(java)中工作,java,jdbc,playframework,h2,Java,Jdbc,Playframework,H2,我想知道,要让一个嵌入jdbc的h2数据库在我的play应用程序中工作,我遗漏了哪些步骤?跟随 到目前为止,已编辑Application.conf文件以包含以下内容: db.default.driver=org.h2.driver db.default.url=“jdbc:h2:数据库/测试” db.default.user=test db.default.password=“testtest” 接下来,我创建了一个libs目录并添加了jar文件 h2-1.3.174.jar 这是必要的还

我想知道,要让一个嵌入jdbc的h2数据库在我的play应用程序中工作,我遗漏了哪些步骤?跟随

  • 到目前为止,已编辑Application.conf文件以包含以下内容: db.default.driver=org.h2.driver db.default.url=“jdbc:h2:数据库/测试” db.default.user=test db.default.password=“testtest”
  • 接下来,我创建了一个libs目录并添加了jar文件 h2-1.3.174.jar 这是必要的还是提供的驱动程序处理所有类型的h2数据库(嵌入式和服务器-我知道它在内存中处理)?
  • 现在在控制器中,我如何访问数据库?我必须启动/关闭数据库吗
  • 我知道我可以从play.db中的getConnection()方法获取连接。但是每次我通过这个连接执行一个语句时,我都会收到一个异常,说没有可用的数据。如果我然后检查-看起来像目录 数据库/测试 未创建,因此不存在数据库文件
    我遗漏了什么?

    H2是现成的。只需在终端中创建一个新项目

    否则,请在您的列表中:

  • 我认为您应该将
    db.default.url=“jdbc:h2:databases/test”
    更改为
    db.default.url=“jdbc:h2:mem:play”
  • 不需要创建lib目录。这一切都由内置的依赖项管理sbt
  • 只需使用模型对象并调用
    save/update
    。无需调用
    start/shutdown
  • 你在一个框架中,一切都为你准备好了

  • 我认为您应该从头到尾阅读文档,并检查示例应用程序。你要找的东西都在那里

    除了myborobudur的回答之外,我只想提到的是,您不需要使用内存数据库,因为您可以使用文件存储(嵌入式),甚至可以将H2作为服务器运行,然后在服务器模式下通过TCP连接到它。。。所有内容都在中清楚地描述。

    谢谢-为了澄清,我认为我不能使用h2:mem:。。。因为我需要数据库不在内存中。它需要持续存在。我必须使用mem吗?我使用H2进行开发和测试。稍后,您可以将应用程序连接到sql数据库,如mysql:
    db.default.url=“jdbc:mysql://localhost/dbname“
    ,您需要一个连接器库,在
    项目/Build.scala
    中声明它,
    “mysql”%“mysql连接器java”%“5.1.18”
    只是为了确保-一旦我更改了数据库中的某些内容,它是自动保存的还是我必须调用某种保存/更新方法?刚刚有一个嵌入式H2DB工作,它似乎正确地保存了一切。我之所以问这个问题,是因为您的第三个bulletpointModel实例的save()和update()方法与它们的名称相同。用于创建模型实体的新操作符,用于持久性的save方法,用于进行更改的update。使用单元测试,这是学习的最佳方式。别忘了投票选出答案。