kojisiの技術ノート

開発系SEに転職した未熟者の勉強記録

DBから複数項目を複数行取得する

■呼び出し元 主宣言等省略

ArrayList<HashMap<Strig,String>> lstuserdate = new ArrayList<HashMap<Strig,String>>();
lstuserdate = selUserMst(string文字);
for(HashMap<String,String>getList : lstuserdate){
//DBから取得した件数分繰り返す
     (String)getList .(USER_ID)
}

■dao 主宣言等省略

pubulic ArrayList<HashMap<String,String> selUserMst(String string文字)throw〜{
ArrayList<HashMap<Strig,String>> resultset = new ArrayList<HashMap<Strig,String>>();
PreparedStatement pstmt = null;
ResultSet rs = null;
try{
    StringBuilder sqlstr = new StringBuilder();
    sqlstr.append("SELECT");
    sqlstr.append(" USER_ID,USER_NAME");
    sqlstr.append(" from USER_MST");
    sqlstr.append(" WHERE USER_ID = ?");
    pstmt=con.prepareStatement(sqlstr.toString());
    pstmt.setString(1, string文字);
    rs = pstmt.executeQuery();
    while(rs.next()){
       ArrayList<HashMap<Strig,String>> data = new ArrayList<HashMap<Strig,String>>();
       data.put(USER_ID,rs.getString(USER_ID));
       data.put(USER_NAME,rs.getString(USER_NAME));
       resultset.add(data);
    }
 〜

 

ArrayListのなかにHashMapをいれて、さらにその中にArrayListとHashMapをいれるというやり方。そこまで思い至らなかった。。。