为了账号安全,请及时绑定邮箱和手机立即绑定

以下是部分代码,请高手帮忙看看问题出在哪里?

以下是部分代码,请高手帮忙看看问题出在哪里?

C
SMILET 2023-03-17 17:13:59
public List<Category> getCategoryList() throws SQLException {Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;try {conn = DbUtil.getConnection();String sql = "select * from category";ps = conn.prepareStatement(sql);rs = ps.executeQuery(sql);List<Category> categoryList = new ArrayList<Category>();Category c = new Category();while (rs.next()) {c.setcId(rs.getInt("cId"));System.out.println("ci Dao===="+rs.getInt("cId"));c.setName(rs.getString("name"));c.setDescribes(rs.getString("describes"));c.setContentTime(rs.getString("contentTime"));categoryList.add(c);}System.out.println("categoryList.get(0).getCid()=="+categoryList.get(0).getcId());//输出3System.out.println("categoryList.get(1).getCid()=="+categoryList.get(1).getcId());//输出3 和上面的一样 ???????return categoryList;} finally {DbUtil.close(rs, ps);}}
查看完整描述

2 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

把Category c = new Category();写到循环里面去就好了!
while (rs.next()) {
Category c = new Category();

c.setcId(rs.getInt("cId"));
System.out.println("ci Dao===="+rs.getInt("cId"));
c.setName(rs.getString("name"));
c.setDescribes(rs.getString("describes"));
c.setContentTime(rs.getString("contentTime"));
categoryList.add(c);
}

查看完整回答
反对 回复 2023-03-21
?
白板的微信

TA贡献1883条经验 获得超3个赞

Category c = new Category();

这一句放到while循环里面去
否则只创建了一个对象
所有的操作都是对这一个对象进行的
所以只有最后一次循环生效了

必须在每次循环的时候new一个对象才可以

查看完整回答
反对 回复 2023-03-21
  • 2 回答
  • 0 关注
  • 71 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信