为什么我在调用 StaticQuery updateNA "shutdown;" 时得到 'Database is already closed'
Why do I get 'Database is already closed' when invoking StaticQuery updateNA "shutdown;"
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: Database is already closed"。这里发生了什么?
执行 "shutdown" 准备好的语句后,灵活的 StatementInvoker 向数据库询问语句的 updateCount。
H2 数据库不喜欢被询问,因为它已经关闭。
我不知道这两者中哪一个的行为不正确。但是,如果您碰巧遇到同样的问题,关闭数据库只需使用
db.createSession().createStatement() 执行"shutdown;"
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: Database is already closed"。这里发生了什么?
执行 "shutdown" 准备好的语句后,灵活的 StatementInvoker 向数据库询问语句的 updateCount。
H2 数据库不喜欢被询问,因为它已经关闭。
我不知道这两者中哪一个的行为不正确。但是,如果您碰巧遇到同样的问题,关闭数据库只需使用
db.createSession().createStatement() 执行"shutdown;"