2016-09-02 2 views
-1

私の必要条件は、他のページのデータを転送する必要があり、結果セットが転送不能なため、結果データをオブジェクト形式に変換することです。重複のないオブジェクトにResultSetデータを入れる方法

Column1 Column2 
100 One 
    Two 
    Three 
    Four 
    Five 
    Six 
101 Seven 
    Eight 
103 Nine 
    Ten 
    Eleven 

これは私がリストを望む意味:

Column1 Column2 
100 One 
100 Two 
100 Three 
100 Four 
100 Five 
100 Six 
101 Seven 
101 Eight 
103 Nine 
103 Ten 
103 Eleven 

しかし、私は、この形式のオブジェクト内のデータが欲しい:私は

ResultSet resultSet = stmt.executeQuery(query); 
while(resultSet.next()) { 
    System.out.println(resultSet.getString(1) + "," + resultSet.getString(2)); 
} 

が結果

のような行にデータを返す ResultSetを持っています/ハッシュマップでは、列1のデータをキーにし、対応する列2のデータを値として配列/コレクションオブジェクトに入れる必要があります。キー。

+0

その種類は、プレゼンテーションレイヤーで行う必要があります。 db層にない – Jens

+0

何かを試してみて、それがどうなるか教えてください。これは無料のコード作成サービスではありません。 –

答えて

0

簡単にするために、hashmapを使用できます。

HashMap<String, ArrayList<String>> hashmap = new HashMap<String, ArrayList<String>>(); 

このようにして、あなたの最初の列がキーになると私はあなたが何であるかを正しく理解している場合、実装のための最初の列に対応するArrayListになって2列目の値は、次のURLから

HashMap(key: String, value: ArrayList) returns an Object instead of ArrayList?

0

を行ってくださいこれを実行しようとすると、次のようになります。

Map<String, List<String>> mappedObjects = new HashMap<String, List<String>>(); 
while (resultSet.next()) { 
    List<String> values = new ArrayList<>(); 
    if (mappedObjects.get(resultSet.getString(1)) != null) { 
     values = (List<String>) mappedObjects.get(resultSet.getString(1)); 
    } 
    if (values.size() > 0) { 
     values.add(resultSet.getString(2)); 
    } else { 
     values.add(resultSet.getString(2)); 
    } 
    mappedObjects.put(resultSet.getString(1), values); 
} 
+0

こんにちはマーク...完璧にうまくいっています。クイックソリューションを評価してください。ありがとう – Kamal

関連する問題