I am trying to store values from ResultSet into an ArrayList. But when I print the values of the ArrayList only the last value stored is displayed for the total number of times.
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
user.setF_number(rs.getInt("F_NUMBER"));
user.setId(rs.getString("ID"));
user.setFirst_name(rs.getString("FIRST_NAME"));
user.setMsg_date(rs.getString("MSG_DATE"));
user.setTopic_id(rs.getInt("TOPIC_ID"));
user.setMessage(rs.getString("MESSAGE"));
System.out.println(rs.getString("MESSAGE"));
users.add(user);
}
Iterator itr = users.listIterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
Each time you iterate the while loop you should instantiate a new User
object.Otherwise you get only the last result as the out come.
while (rs.next()) {
User user = new User();//this should be inside while loop
user.setF_number(rs.getInt("F_NUMBER"));
user.setId(rs.getString("ID"));
user.setFirst_name(rs.getString("FIRST_NAME"));
user.setMsg_date(rs.getString("MSG_DATE"));
user.setTopic_id(rs.getInt("TOPIC_ID"));
user.setMessage(rs.getString("MESSAGE"));
System.out.println(rs.getString("MESSAGE"));
users.add(user);
}