1

我正在使用 java 和 eclipse 设计一个 web 服务,它返回在数据库中标记为客户的用户详细信息

我成功地使用以下代码返回了单个用户的详细信息(因为 dB 中只有一个条目):

public class GetData {

public LoginDetails getDetails(){    
    Connection conn;
    Statement stmt;
    ResultSet rs;

    try {
        LoginDetails lds=new LoginDetails();
        Class.forName(driver);
        conn=DriverManager.getConnection(url,username,password);
        stmt=conn.createStatement();
        String sql="select * from login where usertype='customer'";
        rs=stmt.executeQuery(sql);
        while(rs.next()){
            lds.setUsername(rs.getString(1));
            lds.setPassword(rs.getString(2));
            lds.setUsertype(rs.getString(3));
            lds.setActive(rs.getString(4));

        }
        return lds;
    } 
    catch(ClassNotFoundException c){
        c.printStackTrace();
    }
    catch (SQLException e) {
        e.printStackTrace();
    }

    return null;
}
}

如果有多个 dB 值符合条件,我想全部显示,我该怎么办。请指教。

4

2 回答 2

3

将您的方法签名更改为public LoginDetails[] getDetails()

并按如下方式扩展您的 while 循环:

    Collection<LoginDetails> details = new ArrayList<LoginDetails>();
    while(rs.next()){
        LoginDetails lds=new LoginDetails();
        lds.setUsername(rs.getString(1));
        lds.setPassword(rs.getString(2));
        lds.setUsertype(rs.getString(3));
        lds.setActive(rs.getString(4));
        details.add(lds);

    }
    return details.toArray(new LoginDetails[0]);
于 2012-04-10T09:38:18.273 回答
0

建议返回一个集合类型 java.util.List ,最好从方法中返回 ArrayList 。

于 2012-04-10T09:39:11.780 回答