29

ScalaのSlickでDB接続プールを使用する簡単な方法はありますか?

4

4 に答える 4

28

これに使用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を使用していますが、他のデータベースに簡単に適合させることができます。

完全な例はここにあります(プロジェクトのクローンを作成しsbt run、lift /ディレクトリで実行して動作を確認できます)。

于 2013-03-21T17:06:20.597 に答える
22

完了のために、私はこれについてのブログ投稿を書くことになりました:

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

于 2013-04-07T21:45:56.510 に答える
1

Play 2.4は、本当に見栄えのするHikariCPを使用するようになりました:https: //brettwooldridge.github.io/HikariCP/ https://www.playframework.com/documentation/2.4.x/SettingsJDBC

于 2015-10-08T21:06:52.147 に答える
-1

Playプールで構成された接続の新しいバージョンのように見えます-http://www.playframework.com/documentation/2.0.1/SettingsJDBCを参照してください

于 2013-11-22T20:19:51.857 に答える