我实例有类似的代码光滑的数据库油滑的数据库实例化和连接池逻辑
import slick.jdbc.JdbcBackend.Database
val db : Database = Database forConfig "configPath"
查询是从接受一个用户ID并从数据库表返回一个用户名的功能构成:
def queryName(userId : String) =
for {
row <- TableQuery[Tables.MyTable] if row.userid === userId
} yield row.username
,然后运行查询,以产生不同的Publisher
值:
val p1 : Publisher[String] = db stream (queryName("foo").result)
val p2 : Publisher[String] = db stream (queryName("bar").result)
最后,我的问题是:多次调用db.stream
是否在连接池中使用相同的连接?
换句话说,一旦我已经实例化数据库,就像锁定在单个连接上一样?
言外之意是在池中的所有连接,真正的利用需要的功能在查询之前创建Database
值:
//Is this necessary?
val db =() => Database forConfig "configPath"
val p1 = db() stream (queryName("foo").result)
预先感谢您的关怀和响应