连接汇集在浮油?

时间:2013-03-20 21:10:22

标签: scala slick

是否有一种简单的方法可以将数据库连接池与scala Slick一起使用?

4 个答案:

答案 0 :(得分:26)

我使用Apache Commons DBCP。基本上,您只需创建一个DataSource,它封装了池化细节,并将DataSource传递给Slick:

import org.apache.commons.dbcp.BasicDataSource

val dataSource: DataSource = {
  val ds = new BasicDataSource
  ds.setDriverClassName("org.hsqldb.jdbc.JDBCDriver")
  ds.setUsername("SA")
  ds.setPassword("")
  ds.setMaxActive(20);
  ds.setMaxIdle(10);
  ds.setInitialSize(10);
  ds.setValidationQuery("SELECT 1 FROM INFORMATION_SCHEMA.SYSTEM_USERS")
  new java.io.File("target").mkdirs // ensure that folder for database exists
  ds.setUrl("jdbc:hsqldb:file:target/db/db")
  ds
}

// test the data source validity
dataSource.getConnection().close()

// get the Slick database that uses the pooled connection
val database = Database.forDataSource(dataSource)

此示例使用HSQLDB,但可以轻松地适应任何其他数据库。

完整的示例是here(您可以克隆项目,并在lift /目录中运行sbt run以查看它是否正常工作。)

答案 1 :(得分:21)

为了完成,我最后写了一篇关于此的博文:

http://fernandezpablo85.github.io/2013/04/07/slick_connection_pooling.html

答案 2 :(得分:1)

答案 3 :(得分:-1)

好像播放池的更高版本配置了连接 - 请参阅http://www.playframework.com/documentation/2.0.1/SettingsJDBC