读书人

新手求指点~该怎么解决

发布时间: 2012-03-29 12:53:13 作者: rapoo

新手求指点~~

Java code
public List<User> list(){        List<User> users=new ArrayList<User>();        Connection conn=this.getConnection();        ResultSet rs=null;        String sql="select id,username,password,age,address from user";        PreparedStatement ps=this.prepare(conn, sql);        User user=new User();        try{            rs=ps.executeQuery();            while(rs.next()){                user.setId(rs.getInt(1));                user.setUsername(rs.getString(2));                user.setPassword(rs.getString(3));                user.setAddress(rs.getString(4));                users.add(user);            }        }catch(Exception e){            e.printStackTrace();        }        return users;    }

Java code
public static void main(String[] args) {        Main main=new Main();        List<User> allUser=main.list();        Iterator<User> iterator=allUser.iterator();        while(iterator.hasNext()){            User user=iterator.next();            System.out.println(user.getUsername());        }            }

为什么输出的总是最后一条数据啊~ 希望各位给的详细点 谢谢了

[解决办法]
因为你只有一个User user = new User();
所以从始至终你都只创建了一个user对象,而代码
Java code
            while(rs.next()){                user.setId(rs.getInt(1));                user.setUsername(rs.getString(2));                user.setPassword(rs.getString(3));                user.setAddress(rs.getString(4));                users.add(user);            } 

读书人网 >J2SE开发

热点推荐