Play 2.xからMySQLに接続してAnormでCRUD操作するにはScala+Play 2.0でWebアプリ開発入門(7)(1/3 ページ)

2.0からScalaに対応したWebアプリ開発の人気軽量フレームワーク「Play」について解説し、Webアプリの作り方を紹介する入門連載。今回は、DBに接続してSQL文でデータを追加/更新/削除/参照する方法を解説。EvolutionスクリプトでのDB管理方法も。

» 2013年07月02日 18時00分 公開
[中村修太クラスメソッド株式会社]

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」をご確認ください。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。