web-dev-qa-db-ja.com

リストへの結果セット

JSPページで結果セットをリストに変換したい。すべての値を表示したい。これは私のクエリです:

SELECT userId, userName 
  FROM user;

preparedstatementを使用して実行し、Resultsetを取得しました。しかし、それをListとして変換し、次のような結果を表示する方法:

userID  userName
------------------
1001    user-X 
1006    user-Y  
1007    user-Z
20
Gnaniyar Zubair

ループ内のResultSetオブジェクトを行ごとに反復処理して、各列の値を引き出す必要があります。

List ll = new LinkedList();
ResultSet rs = stmt.executeQuery("SELECT userid, username FROM USER");

// Fetch each row from the result set
while (rs.next()) {
  int i = rs.getInt("userid");
  String str = rs.getString("username");

  //Assuming you have a user object
  User user = new User(i, str);

  ll.add(user);
}
34
OMG Ponies

常に Commons DbUtils および MapListHandler を使用できます。ドキュメントから:

ResultSetをマップのリストに変換するResultSetHandler実装

そのため、多くの定型コードを手に入れる必要はありません。

6
Brian Agnew

ResultSetがJSPに到達することはありません。データ構造またはオブジェクトにマッピングし、作成元のメソッドスコープ内で閉じる必要があります。これはデータベースカーソルであり、希少なリソースです。このようなデザインを維持する場合、アプリはすぐにそれらを使い果たします。

5
duffymo