1

データベースで顧客としてマークされているユーザーの詳細を返すJavaとEclipseを使用してWebサービスを設計しています

次のコードを使用して、1 人のユーザーの詳細を正常に返すことができました (dB にエントリが 1 つしかないため)。

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 に答える