libro
www.tuyano.com
初心者のためのPlay Framework入門

Model(モデル)を使ってデータベースアクセスする[Scala編] (3/7)

作成:2013-02-10 10:06
更新:2013-02-10 10:06

■テーブル定義のSQL文の用意

次に行うのは、使用するテーブルを定義するためのファイルの用意です。データベースを利用する場合には、あらかじめデータベースに使用するテーブルを用意しておかないといけませんが、Playの場合、実行時にテーブルがないと、あらかじめ用意しておいたファイルを元にテーブル作成を行ってくれるようになります。特にH2でメモリにデータベースを保管する場合、毎回データベースにテーブルを用意しないといけませんから、手作業では面倒臭いでしょう。

このテーブル定義のファイルは、「conf」内に「evolutions」というフォルダを作り、その中に「default」フォルダを作成して、更にこのフォルダの中にファイルを用意します。ファイル名は「1.sql」としておきます。

下のリスト欄に、conf/evolutions/default/1.sqlの内容を記述しておきました。この通りにファイルに記述をしておいてください。ここでは、以下のような項目を持つテーブル「mydatas」を定義しています。

id――自動で割り振られるID番号。プライマリキー(整数)
name――名前のデータ(テキスト)
mail――メールアドレスのデータ(テキスト)
tel――電話番号のデータ(テキスト)

このテーブルを使って、データベースアクセスの処理を作成していくことにします。このファイルに記述されている内容は、まぁなんとなくわかるでしょうが、こんな感じで書かれています。
# --- !Ups ★ここにテーブル作成の処理を書く

create table テーブル名 (
    ……各項目の定義を記述……
);

# --- !Downs ★ここにテーブル削除の処理を書く

drop table テーブル名;
# --- !Ups# --- !Downsのコメント文の下に、テーブル作成と削除の処理を用意します。テーブルの作成はcreate table、削除はdrop tebleという文になります。見ればわかるように、いずれもテーブル作成・削除のためのSQL文がそのまま書かれているんですね。

このファイルが用意されていると、Playを起動し、データベースアクセスを必要とする処理が実行された際に表示されるエラー画面(テーブルがないので当然エラーになります)で、「An SQL script will be run on your database」という表示が現れ、その右側に「Apply this script now!」というボタンが表示されます。このボタンをクリックすると、用意されたスクリプトが実行され、テーブルが作成されます。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※application.confへの記述

db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"


※conf/evolutions/default/1.sqlへの記述

# --- First database schema

# --- !Ups

create table mydatas (
    id    bigint(20) NOT NULL AUTO_INCREMENT,
    name  varchar(128),
    mail    varchar(255),
    tel    varchar(50),
    PRIMARY KEY (id)
);

# --- !Downs

drop table mydatas;

※関連コンテンツ

「初心者のためのPlay Framework入門」に戻る