为什么在调用StaticQuery updateNA“shutdown;”时“数据库已经关闭”

时间:2015-03-12 15:34:04

标签: scala h2 slick

import scala.slick.driver.H2Driver
import scala.slick.jdbc.StaticQuery

object Main extends App {
  val db = H2Driver.simple.Database forURL (url = s"jdbc:h2:mem:test", user = "sa", driver = "org.h2.Driver")
  StaticQuery updateNA "shutdown;" execute db.createSession()
}

使用scala 2.11.5,h2 1.4.186和slick 2.1.0执行此操作会产生" org.h2.jdbc.JdbcSQLException:数据库已关闭"。这里发生了什么?

1 个答案:

答案 0 :(得分:0)

执行"关闭"准备好的语句,光滑的StatementInvoker向数据库询问语句的updateCount。

H2数据库不喜欢被问到这个因为它已经关闭了。

我不知道两者中的哪一个行为不正确。但是,如果碰巧遇到同样的问题,关闭数据库只需使用

db.createSession()。createStatement()execute" shutdown;"