ArrayList 中仅显示 ResultSet 的最后结果
Only last result from ResultSet showing in ArrayList
我正在尝试将 ResultSet 中的值存储到 ArrayList 中。但是当我打印 ArrayList 的值时,只显示最后存储的值的总次数。
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());
}
每次迭代 while 循环时,您应该实例化一个新的 User
object.Otherwise 您只会得到最后的结果。
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);
}
我希望您是在 while 循环之外创建用户对象
因此用户详细信息被覆盖
您需要为不同的记录创建一个不同的用户对象,并将该用户对象创建到 arrayList,如下所示
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
User user=new User()
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());
}
我正在尝试将 ResultSet 中的值存储到 ArrayList 中。但是当我打印 ArrayList 的值时,只显示最后存储的值的总次数。
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());
}
每次迭代 while 循环时,您应该实例化一个新的 User
object.Otherwise 您只会得到最后的结果。
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);
}
我希望您是在 while 循环之外创建用户对象
因此用户详细信息被覆盖
您需要为不同的记录创建一个不同的用户对象,并将该用户对象创建到 arrayList,如下所示
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
User user=new User()
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());
}