1. 程式人生 > >為什麽List.add()所增加的數據都是一樣的

為什麽List.add()所增加的數據都是一樣的

jdbc sys hda println print sta .get next() jdb

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()所增加的數據都是一樣的