【问题标题】:Close DB Connection in Slick 3.0在 Slick 3.0 中关闭数据库连接
【发布时间】:2023-03-09 07:53:01
【问题描述】:

我使用 Slick 3.x 和 Play 2.3.9 没有 play-slick,因为 play-slick 不支持这种组合。我读了

http://blog.knoldus.com/2015/03/03/play-with-reactive-slick-a-simple-crud-application-in-play-framework-using-slick-3-0/

它提到必须明确关闭数据库连接,即

def delete(id: Long): Future[Int] =
    try db.run(filterQuery(id).delete)
    finally db.close

我是否必须按照文章中所述明确关闭连接? db.close 会关闭连接和池吗?因为,OTH,Slick 3.0 文档中的示例没有明确关闭连接。我可能误解了文件。谢谢

【问题讨论】:

    标签: database connection slick-3.0


    【解决方案1】:

    db.close 关闭连接池。你可能不想这样做。 它编写数据库的方式可能会在处理数据库查询之前关闭。

    db.close 不会关闭连接或语句。这是在 db.run() 子句中自动为您完成的

    【讨论】:

      【解决方案2】:

      我检查了 MySQL 进程列表 show processlist,发现应用程序的连接数没有超过应用程序设置中指定的数量,并继续接受超过允许的数据库连接数的请求。这表明每次请求后,db 连接都会返回到db.run(...) 内的池中,并且不需要 db.close。

      【讨论】:

        猜你喜欢
        • 2017-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-12
        • 2011-01-14
        • 1970-01-01
        相关资源
        最近更新 更多