我正在学习Slick,并已经开启并运行了一个Postgres数据库。我创建了一个小程序来进行测试,代码如下:
import scala.slick.driver.PostgresDriver.simple._
import Database.threadLocalSession
object Names extends Table[(String)]("names")
{
def name = column[String]("name", O.PrimaryKey)
def * = name
}
object DbTest
{
val db = Database.forURL("jdbc:postgresql://localhost:5432/names",
driver = "org.postgresql.Driver")
def main(args : Array[String]) =
{
print("Doing something... ")
db withTransaction
{
Query(Names) foreach
{
case (name) =>
println(name)
}
}
println("... done!")
}
}
问题在于,
print("Doing something... ")
后,需要大约5秒钟才会发生任何事情。如果我复制 db withTransaction
块,则这两个块将在一开始的5秒钟后快速连续执行。有什么想法吗?