Convert a result set to a list

How can I convert a result set to a list? I am using the following code but it does not work properly

private List<User> convertToList(ResultSet rs) {
        List<User> userList = new ArrayList();
        User user = new User();

        try {
            while (rs.next()) {

                user.setId(rs.getInt("id"));
                user.setUsername(rs.getString("username"));
                user.setFname(rs.getString("fname"));
                user.setLname(rs.getString("lname"));
                user.setUsertype(rs.getInt("usertype"));
                user.setPasswd(rs.getString("passwd"));
                user.setEmail(rs.getString("email"));
                userList.add(user);

            }
        } catch (SQLException ex) {
            Logger.getLogger(UserDAO.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            closeConnection();
        }

        return userList;

    }
+3
source share
2 answers

I am using the following code, but its not working correctly

This does not describe the problem.

As I would say, you have only one User object in your list. This is because you need to create a new User () object every time you read a new line from a ResultSet:

//User user = new User(); 

        try { 
            while (rs.next()) { 
                User user = new User(); 
                user.setId(rs.getInt("id")); 
                user.setUsername(rs.getString("username")); 
                user.setFname(rs.getString("fname")); 
                user.setLname(rs.getString("lname")); 
                user.setUsertype(rs.getInt("usertype")); 
                user.setPasswd(rs.getString("passwd")); 
                user.setEmail(rs.getString("email")); 
                userList.add(user); 

            } 
+4
source
List<User> usersList = new ArrayList<User>();
while (rs.next()) { 
            User user = new User(); 
            user.setId(rs.getInt("id")); 
            user.setUsername(rs.getString("username")); 
            user.setFname(rs.getString("fname")); 
            user.setLname(rs.getString("lname")); 
            user.setUsertype(rs.getInt("usertype")); 
            user.setPasswd(rs.getString("passwd")); 
            user.setEmail(rs.getString("email")); 
            userList.add(user);

        }

Just remember to put your result: P

0
source

Source: https://habr.com/ru/post/1747644/


All Articles