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,在运行时,就正确了;说来就是自己太粗心了,以后还得细心一点。
希望我的方法对你有帮助。