/**
* 根据type来返回Article,and 保存在list.
*/
public List reType(int type){
List artlist=new LinkedList();
Article art=new Article();
conn=DBConnection.getConnection();
String sql="select * from ARTICLE where type=? order by writeDate desc";
try {
pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, type);
rs=pstmt.executeQuery();
while(rs.next()){
art.setArticleId(rs.getInt("articleId"));
art.setTitle(rs.getString("title"));
art.setType(type);
art.setContent(rs.getString("content"));
art.setWriter(rs.getString("title"));
art.setWriteDate(rs.getString("writeDate"));
System.out.println(art.title);//这里可以输出5个不同的值。。
artlist.add(art);
}
Iterator item=artlist.iterator();
while(item.hasNext()){
Article rrr=(Article)item.next();
System.out.println(rrr.getTitle());//为什么这里输出的全部是相同的呢?
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return artlist;//导致返回的List也是5个一样的值
}
这么办呢??
这个的实例化放到while里
while(rs.next()){
Article art=new Article();
art.setArticleId(rs.getInt("articleId"));
art.setTitle(rs.getString("title"));
art.setType(type);
art.setContent(rs.getString("content"));
art.setWriter(rs.getString("title"));
art.setWriteDate(rs.getString("writeDate"));
System.out.println(art.title);//这里可以输出5个不同的值。。
artlist.add(art);
}Article 它是bean对象,你从数据库里面拿出来的值布置一条吧。每次拿出来之后,
都要set到Article对象里面去,如果不放到while里面去的话,那它拿出来的都是同一条数据,都是第一条。
然后在放到artlist里面。
你的实体类,放在了循环的外面,你怎么赋值都是白费呀,兄弟! 分多可以直接送我一些,何必要用这样的方式呢!而且你发完帖子 自己就解决了!够厉害!
这个的实例化放到while里
public List reType(int type){
List artlist=new LinkedList();
Article art=new Article(); //去掉这句
conn=DBConnection.getConnection();
String sql="select * from ARTICLE where type=? order by writeDate desc";
try {
pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, type);
rs=pstmt.executeQuery();
while(rs.next()){
Article art=new Article(); //加上这句
art.setArticleId(rs.getInt("articleId"));
art.setTitle(rs.getString("title"));
art.setType(type);
art.setContent(rs.getString("content"));
art.setWriter(rs.getString("title"));
art.setWriteDate(rs.getString("writeDate"));
System.out.println(art.title);//这里可以输出5个不同的值。。
artlist.add(art);
}
Iterator item=artlist.iterator();
while(item.hasNext()){
Article rrr=(Article)item.next();
System.out.println(rrr.getTitle());//为什么这里输出的全部是相同的呢?
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return artlist;//导致返回的List也是5个一样的值
}