تکه کد زیر خیلی گیجم کرده. اطلاعات یکسری کتاب را از جدول می خوانم و می ریزم توی یک ArrayList منتها وقتی می خوام چاپ کنم می بینم اطلاعات همه نکراری هست. مثلا فرض کنید سه تا رکورد متفاوت توی جدول باشه. من اینها را می ریزم توی یک آبجکت از نوع ArrayList. حالا وقتی محتوای این آبجکت را می خونم می بینم سه بار کتاب سومی توی این ArrayList ریخته شده و کتاب های دوم و اول هم در کار نیست.
public Book[] getBookList() throws Exception{
ArrayList<Book> al=new ArrayList<Book>();
DBFactory factory=DBFactory.getInstance();
try{
Connection conn=factory.getConnection();
String query="select name, author, isbn, subject, publisher from book";
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(query);
while(rs.next()){
Book b=new Book();
b.setName(rs.getString("name"));
b.setAuthor(rs.getString("author"));
b.setIsbn(rs.getString("isbn"));
b.setPublisher(rs.getString("publisher"));
b.setSubject(rs.getString("subject"));
al.add(b);
System.out.println("--------------------------------------------------------------");
System.out.println(al);
}
System.out.println("--------------------------------------------------------------");
factory.close(rs);
factory.close(stmt);
}catch(Exception e){
throw e;
}
Book[] books=new Book[al.size()];
books=(Book[]) al.toArray(books);
return books;
}