SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Groovy+GrailsでRailsなWeb開発

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

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

コントローラーの作成

 では、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値をクリックすると、そのレコードを編集する画面に移動し、レコードの内容を変更したり、あるいはレコードを削除したりすることもできます。

次のページ
データベースのレコードを取得する

この記事は参考になりましたか?

Groovy+GrailsでRailsなWeb開発連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3868 2009/05/18 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー