CodeZine(コードジン)

特集ページ一覧

Grailsでデータベースを利用しよう

Groovy+GrailsでRailsなWeb開発 第3回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/05/18 14:00

目次

コントローラーの作成

 では、Boardsドメインクラスを利用するためのコントローラーを作成しましょう。コマンドプロンプトでアプリケーションのディレクトリに移動し、次のように実行します。

grails create-controller boards
図2:コマンドプロンプトから、grails create-controller boardsを実行する。
図2:コマンドプロンプトから、grails create-controller boardsを実行する。

 これで、「controllers」フォルダ内に「BoardsController.groovy」というファイルが生成されます。このファイルには次のようなソースコードが記述されています。

class BoardController {

    def index = { }
}

 これに、必要な処理などを記述してアプリケーションを作成していけばいいわけです。ただし、プログラムを書くのはもう少し先になります。

scaffoldの利用

 データベースを利用するためには、コントローラーなどでデータベースから必要な情報を取り出し、ビューに表示するような処理を作成しなければいけません。ただ表示するだけならまだしも、データを追加したり編集したり削除したりといった機能も用意するとなると、けっこう大変そうです。

 が、考えてみるとデータベース利用の基本は、どのプログラムであれそうたいした違いはありません。レコードの一覧表示、新規追加、編集、削除-これらが一通りできれば、とりあえずデータベースの基本的な利用は可能になります。どんなデータベースであれ、これらでやることは大体同じでしょう。せいぜい、取り扱うテーブルやフィールドがそれぞれ異なるという程度です。

 そこでGrailsでは、これらの機能を自動的に用意する「scaffold」という機能を用意しました。scaffoldは、「足場、土台」といった意味です。要するに、データベースを利用する基本的な骨組みを用意してくれる機能、というわけです。

 では、scaffoldを使ってみましょう。使い方は非常に簡単です。先ほど作成したコントローラー(BoardsController.groovy)を、次のように修正してください。

class BoardsController {
	def scaffold = true
}

 これで終わりです。scaffoldを使うには、コントローラーに「def scaffold = true」という一文を書くだけです。他には何もいりません。

 では、実際にscaffoldの機能を確かめてみましょう。コマンドラインから、「grails run-app」を実行してサーバを起動し、localhostにブラウザからアクセスしてみてください。

図3:scaffoldを使って構築したWebアプリケーション。何も書いてないのに、データベースを使った基本機能が実装されている。
図3:scaffoldを使って構築したWebアプリケーション。何も書いてないのに、データベースを使った基本機能が実装されている。

 アクセスしてみて驚くことでしょう。「Boards List」という表示に、BOARDSテーブルに保管されているレコードが一覧表示されます(もっとも、まだ初期状態では何もありませんが)。「New Boards」というリンクをクリックすれば、新たなレコードを作成する画面が現れます。実際にいくつかサンプルレコードを作成して表示を確かめてみましょう。

図4:New Boardsの画面。ここで新しいレコードを登録できる。
図4:New Boardsの画面。ここで新しいレコードを登録できる。
図5:いくつかレコードを登録したところ。日本語もきちんと表示された。
図5:いくつかレコードを登録したところ。日本語もきちんと表示された。

 表示される一覧リストは、ヘッダーのフィールド名(「Id」「Content」といった名前の部分)をクリックすれば、そのフィールド順にレコードが並べ替えられます。また、項目のID値をクリックすると、そのレコードを編集する画面に移動し、レコードの内容を変更したり、あるいはレコードを削除したりすることもできます。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Groovy+GrailsでRailsなWeb開発

もっと読む

著者プロフィール

  • 掌田 津耶乃(ショウダ ツヤノ)

    三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆を中心に活動している。 ※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開中。またGoogle+プロフィールはこちら。

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5