|
||||||||||||||||||||||||||
| 1 2 次のページ | ||||||||||||||||||||||||||
| JSPページからデータベースに接続する | ||||||||||||||||||||||||||
|
前回に引き続きデータベースとの連携について解説します。 それでは、実際にJSPページからデータベースサーバ(MySQL)上のartistテーブルにアクセスし、読み込んだデータを一覧表示するdatabase.jsp(リスト1)を説明していきましょう(図1)。 リスト1:database.jsp
<%@ page contentType="text/html;charset=Windows-31J" %>
![]() 図1:データベースの内容を一覧表示 JSPページでデータベース操作を行うには、JSTL Databaseタグライブラリを使用します。Databaseタグライブラリで使える主要なタグは、表1を参照してください。
表1:Databaseタグライブラリに含まれる主なタグ |
||||||||||||||||||||||||||
| データベース接続とクエリ発行 | ||||||||||||||||||||||||||
|
データベース操作を行うためには、まずデータベースへの接続を取得する必要があります。データベースへの接続を確立するのは、<sql:setDataSource>要素の役割です(リスト1の1)。var属性に接続オブジェクトを格納するための変数を、dataSource属性にコンテキスト定義ファイルで定義したデータソース(リソース)名を、それぞれ指定します。 データベースへの接続に成功したら、あとはデータベースに対してSQLクエリを発行するだけです。Databaseタグライブラリでは、発行するクエリの種類によって使用する要素が異なるので注意が必要です。SELECT命令を発行する場合には<sql:query>要素を、INSERT/UPDATE/DELETE命令など、そのほかのクエリを発行する場合は<sql:update>要素を使用する必要があります。 <sql:query>要素はdataSource属性に<sql:setDataSource>要素で取得したデータソースを、配下のテキストには発行するSQLクエリを、そしてvar属性には結果を格納する変数を、それぞれ指定してください(リスト1の2)。<sql:query>要素は指定されたSQLクエリを発行し、その結果として「結果セット」を返します。 結果セットとは、データベースから取り出されたレコード群を一時的に保持する「仮想的なテーブル」のようなものです。 |
||||||||||||||||||||||||||
| 結果セットからHTMLテーブルへ | ||||||||||||||||||||||||||
|
取り出した結果セットの内容を取得するのは、<c:forEach>要素の役割です(リスト1の3)。<c:forEach>要素は、items属性で指定したコレクション(配列)の内容を順番に取り出し、var属性で指定した変数にセットしながら、ループを繰り返します。${rs.rows}は、結果セットに含まれる行情報のセットを返します。 つまり、ここでは結果セットの行情報セットからレコードを順番に取り出しながら、各フィールド値を出力しているというわけです。それぞれのフィールド値には、${変数名['フィールド値']}の形式でアクセスできます(図2)。 ![]() 図2:結果セットの処理方法 |
||||||||||||||||||||||||||
|
1 2 次のページ |
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||



