Play 2.xからMySQLに接続してAnormでCRUD操作するには:Scala+Play 2.0でWebアプリ開発入門(7)(1/3 ページ)
2.0からScalaに対応したWebアプリ開発の人気軽量フレームワーク「Play」について解説し、Webアプリの作り方を紹介する入門連載。今回は、DBに接続してSQL文でデータを追加/更新/削除/参照する方法を解説。EvolutionスクリプトでのDB管理方法も。
Play 2.1でデータベースアクセス
前回の記事「Play 2.xのScala Templatesでビュー&フォーム操作」では、Scala Templatesを使用して、Play framework 2.x(以下、Play2)でビューを扱うための方法を紹介しました。
いままでコントローラの使い方、ビューの使い方を解説してきましたので、今回はPlay2でデータベースを扱う方法を紹介します。
使用するデータベースの準備
Play2でデータベースを扱うには、conf/application.confファイルで、JDBCドライバ(db.default.driver)やURL(db.default.url)の設定を行うことで、データベースへアクセスできます(デフォルトでH2データベースの記述がされているので、すぐに使用することもできます)。
Play2はPostgreSQL/MySQL/SQLite/Oracleなど、いろいろなRDBMSに対応していますが、本連載ではMySQLを使用します。ここからは、MySQLのインストールからデータベースの作成までを行ってみましょう。
MySQLをインストールして、データベースを作成
まずはサンプルアプリケーションで使用する、MySQLをインストールしましょう。本連載では、MySQLのインストールや起動などの基本的な使い方については詳細に説明しません。
記事「今から始める MySQL入門(1):MySQL+Apache+PHPをインストールしよう」「快速MySQLでデータベースアプリ!(1):MySQLインストール完全ガイド」など等を参考にしてください。
ちなみに、著者はMacで「Homebrew」を使用してMySQLをインストールしました。
インストールしてMySQLを起動したら、コマンドラインツールを使用してgyroデータベースの作成を行います。
% mysql -u<ユーザー名> -p<パスワード> Welcome to the MySQL monitor. Commands end with ; or \g. ・ ・ ・ mysql> create database gyro; Query OK, 1 row affected (0.01 sec)
show databasesコマンドでgyroデータベースが作成されているのを確認してください。
設定ファイルを更新
データベースを作成したら、次は「conf/application.conf」ファイルにデータベース情報の設定を行います。db.defaultから始まる項目に、JDBCドライバやURLなどの設定を記述しましょう。
・ ・ ・ db.default.driver=com.mysql.jdbc.Driver db.default.url="jdbc:mysql://localhost/gyro" db.default.user=<ユーザー名> db.default.password=<パスワード> #実行されたSQLを出力するように指定 db.default.logStatements=true ・ ・ ・ #DEBUG出力 logger.root=DEBUG
db.default.logStatementsにtrueを設定し、logger.rootにはDEBUG(元はERRORに設定)を指定すると、コンソールには、実行されたSQLが表示されるようになります。
次に、project/Build.scalaを更新します。Play 2.1からはplay.api.dbパッケージも分割されたので、依存ライブラリの項目に「jdbc」と「anorm」(DBアクセスライブラリ)を追加します。
また、JDBCドライバも取得する必要があるので、mysql-connectorの記述も追加します。
import play.Project._ import sbt._ import Keys._ object ApplicationBuild extends Build { val appName = "gyro" val appVersion = "1.0-SNAPSHOT" val appDependencies = Seq( // Add your project dependencies here, jdbc, anorm, "mysql" % "mysql-connector-java" % "5.1.24" ) val main = play.Project(appName, appVersion, appDependencies).settings( // Add your own project settings here ) }
依存ファイルを取得
設定ファイルを更新したら、playコンソールでライブラリを取得します。
% play [gyro] $ reload //playコンソールが起動中なら再読み込み [gyro] $ dependencies //依存ライブラリ取得 [gyro] $ eclipse //Eclipseプロジェクト更新
ここまでできれば、準備完了です。
なお、DBの設定に関する項目は、公式サイトの「Documentation: ScalaDatabase ― Playframework」「ScalaDatabase」をご確認ください。
Copyright © ITmedia, Inc. All Rights Reserved.