データベーステーブルのデータをVelocityコンポーネント使用しブラウザ上で表示-その②

前回データベースのテーブル内容をVelocityコンポーネントを使用してブラウザ上で表示する流れを説明しました。

今回はVelocityコンポーネントに提供されているメソッドの中から、レコード取得のため頻繁に利用するメソッド一部をご紹介します。

フローは前回紹介したもので、データベースからデータを取得し、取得したデータをMapperコンポーネントでデータをマッピングし、Velocityコンポーネントを使用してブラウザ上で表示させるという内容になります。

※データベーステーブルには上記写真のように4つのレコードがあることを想定

①テーブル内のすべてのレコードをforeachで取得する方法

1.#foreach ($data in $in.records)

 2. <tr>

 3. <td>$data.get("ORDERID")</td>

 4. <td>$data.get("DATE") </td>

 5.<td>$data.get("CUSTOMERID")</td>

 6.<td>$data.get("QUANTITY") </td>

 7.</tr>

 8.#end

 $dataは任意の名前でOK

メソッドの説明

Velocityコンポーネントは入力される全てのストリームを$inに格納される

すべてのレコードを取得するため、recordsメソッドを使用する($in.records

 recordsの中身を一つずつ確認したい場合は、foreachを使用して中身を確認する

 recordsをforeachでループさせているので、$dataにはデータベーステーブルの各レコードが順番に格納される

get(String 変数名)を使用し、変数名に対応する値を出力する

18までのコードを実行すると下記画像内容のデータが取得される


②レコードを1行ずつ取得する方法

1.<div>1行目:$in.record(0) </div>

2.<div>2行目:$in.record(1) </div>

3.<div>3行目:$in.record(2) </div>

メソッドの説明

入力される全てのストリームが$inに格納されている

レコードを一行ずつ取得するためには、record()メソッドを使用 ※引数には数値(インディクス番号)を指定

インディクス番号に対応するレコードが返してくれる

1~3までのコードを実行すると下記画像内容のデータが取得される

③レコードの件数を取得する方法

1.<div>レコード数:$in.records.size() </div></br>

メソッドの説明

inに格納されたストリームからrecordsメソッドですべてのレコードを取得

取得したレコードの件数はsize()メソッドで確認できる

④各レコード内のフィールドを取得する方法

1.<div>レコード0,フィールド0 $in.record(0).field(0)</div>

2.<div> レコード0,フィールド1$in.record(0).field(1)</div>

3.<div> レコード0,フィールド2$in.record(0).field(2)</div

※record(1),record(2)も同様で各フィールドを取得したい場合は、取得したいインディクス番号を指定

メソッドの説明

各レコード内のフィールドを取得したい場合は、field()メソッドを使用する ※引数には数値(インディクスを指定)

インディクス番号に対応する値を返す

上記の写真で③と④で取得データの内容が確認できる