码迷,mamicode.com
首页 > 其他好文 > 详细

为什么List.add()所增加的数据都是一样的

时间:2019-01-19 12:18:49      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:tst   数据库驱动   对象   style   一个   取数据   nec   connect   码农   

1.  先上代码:


List<Person> list = new ArrayList<>();
Person p = new Person();
try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            con = DriverManager.getConnection(dbURL, userName, userPwd);
            System.out.println("加载数据库驱动成功!");
            System.out.println("数据库连接成功!");
            st = con.createStatement();
            rs = st.executeQuery(sql);
while (rs.next()) {
          Person p = new Person();
p.setId(rs.getString("code"));
p.setName(rs.getString("name"));
p.setCode(rs.getString("code"));
p.setCardid(rs.getString("cardid"));
p.setSex(rs.getString("sex"));
p.setBirthday( rs.getString("birthday"));
p.setPhone(rs.getString("phone"));
p.setCorp_code(rs.getString("corp_code"));
p.setDept_code(rs.getString("dept_code"));
p.setPk_psndoc(rs.getString("pk_psndoc"));
             list.add(p);

    }
}catch(Exception e){
//System.out.println("找不到驱动程序类,加载驱动失败!");
e.printStackTrace();
}

2.  通过代码不难发现,我把实体类创建的对象放在了循环外面,每一次从数据库取得数据存到实体类中时,都是同一个实体类,在就造成了每次从List集合中取数据时,都是插入的最后一条数据,作为码农切记细心。

为什么List.add()所增加的数据都是一样的

标签:tst   数据库驱动   对象   style   一个   取数据   nec   connect   码农   

原文地址:https://www.cnblogs.com/gxlaqj/p/10291159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!