list add对象踩的坑

list 添加对象时,没有把new object写到循环体里,导致最后添加了相同的一个对象;

public List<goods> find(String goodsname) {
        List<goods>list = new ArrayList<goods>() ;
        
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        String sql = "select * from goods where goods_name=?";
        try {
            int i=0;
            pstmt = (PreparedStatement) c.prepareStatement(sql);
            pstmt.setString(1, goodsname);
            rs = (ResultSet) pstmt.executeQuery();
            while (rs.next()) {
                goods = new goods();
                goods.setGoods_id(rs.getString(1));
                goods.setGoods_name(rs.getString(2));
                goods.setGoods_sum(rs.getString(3));
                goods.setGoods_price(rs.getString(4));
                goods.setGoods_from(rs.getString(5));
                goods.setGoods_time(rs.getString(6));
            
                list.add(i++, goods);
                         
            }
         
            
            return list;
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
其中 goods = new goods();一定要放到循环体里面。
发布了240 篇原创文章 · 获赞 2 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/zhaocundang/article/details/104810904