Database 如何使用表单将数据插入H2数据库

Database 如何使用表单将数据插入H2数据库,database,scala,playframework-2.0,h2,Database,Scala,Playframework 2.0,H2,如何使用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=""

如何使用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))

}
形式和路线(此处无特殊要求):


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


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

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

有关详细信息,请参阅

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

我更喜欢

下面是用于插入数据的示例代码

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

你能解释一下为什么不把这个标记为答案吗?我做了一个模式,得到了“你的数据库需要进化”的警告。我更改了脚本,因此它不会删除用户表,但它不会更改任何内容。我是否有错误的数据库名称或其他信息?JDBC-URL:JDBC:h2:~/test-application.conf:db.default.URL=“JDBC:h2:mem:test;MODE=MYSQL;db\u-CLOSE\u-DELAY=-1”我使用了您给我的evolutions链接中的用户模式。我刚刚将DROP TABLE USER更改为DROP TABLE IF EXISTS TEST^不更改数据库中的任何内容,我的意思是说play保存play_evolutions表中的更改,因此一旦应用0.sql,它将不再运行它。您应该有增量sql更改文件,如1.sql 2.sql,或者您可以截断表,以便play从一开始就应用更改。所以每次添加脚本时,我只需要创建一个新的sql文件?
DB.withConnection { implicit c =>
    val id: Option[Long] = 
        SQL("INSERT INTO City(name, country) values ({name}, {country})")
        .on('name -> "Cambridge", 'country -> "New Zealand").executeInsert()
}