§SQL データベースアクセス
§JDBC コネクションプールの構成
Play には JDBC コネクションプールを管理するプラグインが同梱されています。これを使って、必要なだけデータベースへの接続設定を書くことができます。
ビルドの依存性に javaJdbc を追加してデータベースプラグインを有効化します :
libraryDependencies += javaJdbc
その後、conf/application.conf
ファイルでコネクションプールの設定を行う必要があります。規約によって、デフォルトの JDBC データソースは default
でなければなりません。
# Default database configuration
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
複数のデータソースの設定は以下のように行われます。
# Orders database
db.orders.driver=org.h2.Driver
db.orders.url="jdbc:h2:mem:orders"
# Customers database
db.customers.driver=org.h2.Driver
db.customers.url="jdbc:h2:mem:customers"
もし何かが適切に設定されていなければ、ブラウザから直接気付くことになります。
§H2 データベースエンジン接続設定
# H2 データベースをインメモリモードで使うデフォルトのデータベース設定
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
# H2 データベースを永続化モードで使うデフォルトのデータベース設定
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:/path/to/db-file"
H2 データベース URL の詳細は H2 Database Engine Cheat Sheet を参照してください。
§SQLite データベースエンジン接続設定
# SQLite データベースエンジンを使うデフォルトのデータベース設定
db.default.driver=org.sqlite.JDBC
db.default.url="jdbc:sqlite:/path/to/db-file"
§PostgreSQL データベースエンジン接続設定
# PostgreSQL データベースエンジンを使うデフォルトのデータベース設定
db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://database.example.com/playdb"
§MySQL データベースエンジン接続設定
# MySQL データベースエンジンを使うデフォルトのデータベース設定
# playdbuser として playdb に接続する
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/playdb"
db.default.username=playdbuser
db.default.password="a strong password"
§JDBC データソースの参照
play.db
パッケージには、設定したデータソースを参照する方法が用意されています。
import play.db.*;
DataSource ds = DB.getDatasource();
§JDBC コネクションの取得
JDBC コネクションも同じように取得できます。
Connection connection = DB.getConnection();
取得された Connection がリクエストサイクルの終わりに自動的に破棄されないことに気を付けることは重要です。別の言い方をすれば、あなたには Connection が直ちにプールに返却されるよう、コードのどこかで close() メソッドを呼び出す責任があります。
§JNDI にデータソースを公開する
一部のライブラリは JNDI からデータソースを取得する事を想定しています。 Play の管理下にあるデータソースを JNDI に公開するには、以下の設定を conf/application.conf
に追加します。
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
db.default.jndiName=DefaultDS
§データベースドライバをインポートする
主に開発時に有効である H2 のインメモリデータベースを除いて、 Play はデータベースドライバを何も提供していません。このため、本番環境にデプロイするには、必要なデータベースドライバを依存性として追加する必要があるでしょう。
例えば MySQL5 を使用する場合、コネクタのために 依存性 を追加する必要があります:
libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.18"
§コネクションプールの選択と設定
特別な設定をしなくても、Play は HikariCP と BoneCP の、2 つのデータベースコネクションプール実装を提供します。デフォルトは HikariCP ですが、play.db.pool
プロパティを設定することで変更できます:
play.db.pool=bonecp
コネクションプールの設定オプション一式は、 Play の JDBC reference.conf
内の play.db.prototype
プロパティを調べることで確認できます。
§テスト
インメモリデータベースのセットアップ方法を含むデータベースのテストについては、データベースを使ったテスト を参照してください。
§Play データベース・エボリューションの有効化
Evolutions を読み、Play データベース・エボリューションが役立つかを調べ、使用するための手順に従ってください。
Next: JPA との統合
このドキュメントの翻訳は Play チームによってメンテナンスされているものではありません。 間違いを見つけた場合、このページのソースコードを ここ で確認することができます。 ドキュメントガイドライン を読んで、お気軽にプルリクエストを送ってください。