java - 将结果集转换为列表

标签 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;

    }

最佳答案

i am using following code but its not working properly

这没有描述问题。

作为一种猜测,我会说您的列表中只有一个用户对象。这是因为每次从 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); 

            } 

关于java - 将结果集转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2933904/

相关文章:

java - 如何使用问号PreparedStatement (Java)?

java - getAbsolutePath 忽略某些文件夹

java - 使用嵌入式 Jetty 7 发布 JAX-WS 端点

java - 使用节点类乘多项式

oracle - 带有返回子句的 JDBC 批量插入

java - 如何使用 JDBC 从 mySQL 获取特定列?

java - 如何使用谷歌地图实时保存轨迹

java - JSON 响应中的属性可以有多种类型

Java 准备语句 nullPointerException

java - JDBC 连接 PostgreSQL