zoukankan      html  css  js  c++  java
  • 为什么List.add()所增加的数据都是一样的

    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集合中取数据时,都是插入的最后一条数据,作为码农切记细心。

  • 相关阅读:
    杭电 1548 A strange lift(广搜)
    JAVA数组的定义及用法
    WPF之Binding深入探讨
    FBReaderJ源代码编译配置
    【剑指offer】合并两有序单链表
    对HGE游戏引擎的一次封装
    WAV文件格式分析
    Ubuntu9.04更新源
    内核及内核模块
    java实现第七届蓝桥杯愤怒小鸟
  • 原文地址:https://www.cnblogs.com/gxlaqj/p/10291159.html
Copyright © 2011-2022 走看看