数据库中查询的数据是多条,可是显示出来的只有一条,为什么?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linshenshijianlu/article/details/76359858

    1  首先附上代码:

public List<YbReview> findSome(Integer articleid)throws Exception{
		List<YbReview> list=new ArrayList<YbReview>();
		Connection con=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;
		YbReview ybReview=null;
		YbUser ybUser=null;
		try{
		   con=DBUtil.getDb();
		   String sql="select a.user_name,b.* from yb_user a,yb_review b where a.user_id=b.user_id and b.article_id=? order by review_datetime desc";
		   pstmt=con.prepareStatement(sql);
			  pstmt.setInt(1,articleid);
			  rs=pstmt.executeQuery();
			  if(rs.next()){
				  ybReview=new YbReview();
				  ybUser=new YbUser();
				  ybUser.setUsername(rs.getString("user_name"));
				  ybReview.setReviewid(rs.getInt("review_id"));
				  ybReview.setArticleid(rs.getInt("article_id"));
				  ybReview.setReviewContent(rs.getString("review_content"));
				  ybReview.setReviewdatetime(rs.getDate("review_datetime"));
				  ybUser.setUserid(rs.getInt("user_id"));
				  ybReview.setYbuser(ybUser);
				  list.add(ybReview);
			  }
		}finally{
	   	 	 DBUtil.CloseDataBase();
			 
	   	  }
		
		return list;
	}
    2  然后,我就很郁闷了,明明是多条记录,可是出来的JSP页面上总是只有一条记录,看了SQL语句也正确啊,找了很久才发现是

  if(rs.next()){的问题,将if改为while,在运行时,就正确了;说来就是自己太粗心了,以后还得细心一点。
        希望我的方法对你有帮助。


阅读更多

没有更多推荐了,返回首页