为什么rs.next()只返回一个结果?

时间:2016-11-16 14:55:35

标签: java database postgresql jdbc

我写了这样的代码。 在表(SocialLevelPerUser)中,有两行满足“WHERE-clause”。但是,“while-statement”只运行一次。 我不明白为什么会这样。我正在使用PostgreSQL数据库。 任何想法/评论赞赏。谢谢。

ArrayList<Friend> getFriendList(String userId){

    ArrayList<Friend> friendList = new ArrayList<Friend>();
    Friend eachFriend = new Friend();
    try {
        st = connection.createStatement();
        rs = st.executeQuery("SELECT \"SourceName\", \"DestinationName\", \"Portion\" "
                            + "FROM public.\"SocialLevelPerUser\" "
                            + "WHERE \"SourceName\" = '" + userId + "'");

        while(rs.next()){
            eachFriend = new Friend();

            String friendId = rs.getString("DestinationName");
            double followingPortion = Double.parseDouble(rs.getString("Portion"));

            eachFriend.setUserId(friendId);
            eachFriend.setFollowingPortion(followingPortion);

            boolean isComplete = isCompleteUserId(friendId);
            boolean isFollow = isFollower(friendId, userId);
            double followerPortion = getFollowerPortion(friendId, userId);

            eachFriend.setIsCompleteUserId(isComplete);
            eachFriend.setIsFollower(isFollow);
            eachFriend.setFollowerPortion(followerPortion);

            friendList.add(eachFriend);
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return friendList;
}

我试图在PostgreSQL的客户端上输入查询,结果如下图所示。

enter image description here

0 个答案:

没有答案