将结果集转换为列表

时间:2010-05-29 05:15:45

标签: java jdbc

如何将结果集转换为列表?我正在使用以下代码,但它无法正常工作

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;

    }

2 个答案:

答案 0 :(得分:4)

  

我正在使用以下代码,但事实并非如此   工作正常

这没有描述问题。

作为猜测,我会说你的列表中只有一个User对象。这是因为每次从ResultSet读取新行时都需要创建一个新的User()对象:

//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); 

            } 

答案 1 :(得分:0)

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

        }

不要忘记把结果放在某事上:P