Javaプログラミング/Javaプログラミング関連情報

[JSF] データベースとDataTable

今回は、データベースからのレコード取得と、それを表示するDataTableについて説明しましょう。

執筆者:掌田 津耶乃

データベースとJSFの関係


Webアプリケーションでは、データベースのデータと連携して処理を行うことが多くあります。こうした場合のために、JSFには「DataTable」という機能が用意されています。これは、JSPに記述されるカスタムタグで、これを利用することであらかじめ用意されているデータを表として整形し表示することができます。

ただし、このDataTable自体にデータベースアクセスの機能があるわけではありません。実をいえば、JSFそのものには、データベースにアクセスする便利な機能というのは用意されていないのです。ですから、自分でデータベースから必要なデータを取り出し、使いやすい形に処理するようなプログラムを用意しておかなければいけません。ですから、JSFでのデータベース利用は、意外と下準備が大変だったりします。

最近は、Hibernateなど「O/Rマッピング」と呼ばれるフレームワークなどが登場し、非常に簡単にデータベースから必要なデータを取り出せるようになってきました。JSFとしては「データベースアクセスのところは、それぞれで好きな仕組みを使ってください。こっちでは、用意されたデータを表示する仕組みだけを用意しておきます」という形にしてあるのでしょう。

Java DBにデータベースを用意する


では、実際に簡単なサンプルを作りながらデータベースアクセスを行ってみましょう。まずは、データベースの準備です。とりあえず、ここではJavaに標準搭載されている「Java DB」を使うことにしましょう。ここでは、Cドライブの「DerbyDatabases」フォルダ内に「MyDB」というデータベースを作成し、そこに「addressdata」というテーブルを用意することにします。テーブルの構造は、以下のようになります。

create table addressdata
(id int primary key,
name varchar(100),
  mail varchar(100),
  memo varchar(255));


プライマリキーとなるid、そして名前、メールアドレス、メモを管理するname、mail、memoフィールドからなります。非常にシンプルなテーブルですね(addressdataなのに住所の項目がないのはなぜだ?という突っ込みは、なしで)。

なお、Java DBの基本的な使い方については、Eclipseを使ってデータベース作成するための手順が「Java 6のJava DBでデータベース」「Eclipse GanymedeでJava DBを利用する」に掲載してあります。これらを参考にしてください。

アプリケーションの基本設計


では、このテーブルを利用するためのプログラムを作成しましょう。どのような形で利用すれば一番使いやすいか、ざっと考えてみてください。ここでは、以下のように設計していくことにします。

・データベース管理
データベースにアクセスし、レコードを取得するBeanクラスを作成し、これをJSFの設定ファイルに登録して利用することにします。

・レコード管理
1つ1つのレコードは、各フィールドの値を管理するクラスを用意し、このクラスのインスタンスとして利用するようにします。

・表示用JSP
DataTableを使い、データベース管理Beanからデータをもらい表示します。

ざっとこのような形でプログラムを構成していくことにします。データベースアクセスは専用のクラスに切り離し、必要に応じてそれを利用しながら動かしていこうというわけです。
  • 1
  • 2
  • 3
  • 4
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます