我如何使用表单将数据插入到我的 H2 数据库中

how do i insert data into my H2 database using a form

如何使用 play 框架中的表单将数据插入到我的 H2 数据库中。我是新来玩的和 h2 数据库。我可以发送数据并使用表单将其显示在下一个网页上,但我不知道如何将其放入数据库,而且似乎无法在互联网上找到任何好的信息。

我已经使用以下方法建立了连接:

db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play;MODE=MYSQL;DB_CLOSE_DELAY=-1"
db.default.username=sa
db.default.password=""

这是我用来将数据发送到下一个网页的代码 Application.conf:

  val form = Form(
  tuple(
  "firstname" -> nonEmptyText(1),
  "midname"  ->  optional(text),
  "lastname" -> nonEmptyText(1),
  "number" -> text,
  "email" -> email
  )
  )

  def submit = Action { implicit request =>
  val (firstname, midname, lastname, number, email) = form.bindFromRequest.get
  Ok(("Hi %s %s %s\nTelefoonnummer: %s\nEmail: %s").format(firstname, midname, lastname, number, email))

}

表格和路线(这里没什么特别的):

<form method="POST" autocomplete="off" action="@routes.Application.formSubmit()">

GET     /formSubmit                 controllers.Application.formLogin()
POST    /formSubmit                 controllers.Application.submit()

h2-browser loginscreen

我希望这些信息足以帮助我

首先你需要创建一个模式来使用它。 然后在你的 application.conf 中启用 play database evolutions 来创建表等。你也可以手动完成。

有关evolutions

的更多详细信息

配置并创建数据库后;对于数据库操作,您可以在 AnormSlickJdbc api 之间进行选择。

我更喜欢Anorm

这是插入数据的示例代码;

DB.withConnection { implicit c =>
    val id: Option[Long] = 
        SQL("INSERT INTO City(name, country) values ({name}, {country})")
        .on('name -> "Cambridge", 'country -> "New Zealand").executeInsert()
}