2003年度 データベース論

JDBCを使った
Servletプログラミング
J2EE I
第9回 / 2006-01-28
1
検索結果の管理

データベースの検索結果1件と、1つの
JavaBeansを対応させる


このとき、検索結果の項目とJavaBeansのプロ
パティに対応関係を持たせる
複数の検索結果は、java.util.List などの
コレクションでまとめる
2
なぜJavaBeansを使うのか



検索結果をオブジェクトとして管理できる
直列化できるので、ネットワークを使ってオ
ブジェクトを転送できる
(JSFなどのフレームワークでは)プロパティ
を便利に使うことができる
3
List
4
java.util.List (1)



オブジェクトが順番に並んだコレクション
java.util.List はインタフェース
実装クラスには



java.util.ArrayList
java.util.LinkedList
java.util.Vector
5
java.util.List (2)
// 生成
List<String> list = new ArrayList<String>();
// リストの末尾に追加
list.add(line);
// 0番目 (=先頭) の要素を取得
String str = list.get(0);
6
インタフェースの利用

普通ならこう書く。


ArrayList は List インタフェースを実装しているので、こう書ける。


ArrayList<String> list = new ArrayList<String>();
List<String> list = new ArrayList<String>();
LinkedListもListを実装しているからこう書ける。

List<String> list = new LinkedList<String>();
public class ArrayList implements List {
……
}
7
Generics (1)


J2SE 5.0 から導入された機能
Listで管理するオブジェクトをString型に限定する


List<String> l = new ArrayList<String>();
ほかの型の場合


List<Book> l = new ArrayList<Book>();
List<Integer> l = new ArrayList<Integer>();
8
Generics (2)

J2SE 1.4 までの場合
List l = new ArrayList();
l.add("1000");
……
String str = (String)list.get(0);
キャストが必要になる
9
コレクションの繰り返し処理
10
java.util.Iterator (1)

コレクションの中のオブジェクトをひとつひ
とつ処理していく
11
java.util.Iterator (2)
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String value = iterator.next();
System.out.println(value);
}
12
for文の拡張 (1)


J2SE 5.0 から登場した for 文の拡張
コレクションや配列に含まれる要素を繰り返
し処理する
for (要素の型 要素名: コレクション or 配列) {
……
}
13
for文の拡張 (2)
List<String> list =
new ArrayList<String>();
……
for (String value: list) {
System.out.println(value);
}
14