-1

ResultSet に含まれるテーブルの各行を HashMap に格納する方法はありますか (各行を HashMap のエントリにします)。

4

2 に答える 2

4

結果セット (主キーと見なされるもの) から列を取得し、それを Map の key プロパティに使用します。残りの列をフィールド (単純な POJO) として保持するカスタム クラスを作成し、それを value プロパティに使用することができます。例:

public class MyRow {
    private String col1;
    private int col2;
    ...
    // the constructor
    public MyRow(String s, int i, ...) {
        this.col1 = s;
        this.col2 = i;
        ...
    }
}

結果セットから int 列 (存在する場合) をマップのキーとして取得したと仮定すると、次のようになります。

Map<Integer, MyRow> map = new HashMap<Integer, MyRow>(0);
ResultSet rs;
// get your result set from some db query or whatever
while(rs.next()) {
    MyRow mr = new MyRow(rs.getString(yourCol1Index), rs.getInt(yourCol2Index), ...);
    map.put(rs.getInt(yourKeyColumnIndex), mr);
}
// finaly release the resources
rs.close();
于 2012-10-05T12:31:13.600 に答える
3

それできますか?はい。行のデータ コンテンツを表すカスタム クラスを記述してから、行を読み取り、それぞれのインスタンスを作成して、適切なキーを使用して HashMap に配置します。

もっと簡単で良い方法はありますか?私が知っているわけではありません。

于 2012-10-05T12:25:02.087 に答える