Java 仅在ArrayList中显示ResultSet的最后一个结果

Java 仅在ArrayList中显示ResultSet的最后一个结果,java,arraylist,resultset,Java,Arraylist,Resultset,我正在尝试将ResultSet中的值存储到ArrayList中。但是,当我打印ArrayList的值时,仅显示存储的最后一个值的总次数 每次迭代while循环时,您都应该实例化一个新的User对象,否则您只能得到最后一个结果 while (rs.next()) { User user = new User();//this should be inside while loop user.setF_number(rs.getInt("F_NUMB

我正在尝试将ResultSet中的值存储到ArrayList中。但是,当我打印ArrayList的值时,仅显示存储的最后一个值的总次数


每次迭代while循环时,您都应该实例化一个新的
User
对象,否则您只能得到最后一个结果

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循环时,您都应该实例化一个新的
User
对象,否则您只能得到最后一个结果

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());
        }

我希望您是在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());
        }