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

时间:2015-10-21 09:19:41

标签: database scala playframework-2.0 h2

如何使用播放框架中的表单将数据插入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

我希望这是足以帮助我的信息

1 个答案:

答案 0 :(得分:1)

首先,您需要创建一个架构来使用它。 然后在application.conf中启用播放数据库演变以创建表等。您也可以手动执行。

有关evolutions

的详细信息

配置并创建db后;您可以在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()
}