为什么Java查mysql查询的数据条数没错但是每条数据一模一样呢

为什么Java查mysql查询的数据条数没错但是每条数据一模一样呢

public  List selectall(T all) {
        Connection c=collectionPool.c();

        if(all.equals("all")){

            String s="select * from tab_allbook";
            book b=new book();
            ResultSet res=null;
           List l=new ArrayList();
            try {
                PreparedStatement pre=c.prepareStatement(s);
                res=pre.executeQuery();
                while (res.next())
                {
                    b.setName(res.getString("bookname"));
                    b.setId(res.getString("bookid"));
                    b.setType(res.getString("kind"));
                    b.setCount(res.getInt("quantity"));
                    b.setPrice(res.getInt("price"));
                    l.add(b);

                }

            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
            finally {
                try {
                    c.close();
                    res.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            return l;
        }

数据库里的数据是这样的

img

查出的结果是这样

img

这是为啥呀

你应该在循环里去new book,你这样相当于一直在操作同一个对象