一老坛酸菜一 2015-09-03 10:20 采纳率: 0%
浏览 2189
已结题

关于resultset读取和arraylist保存的问题

    String sql ="select * from shop_something ";
    ResultSet re = db.query(sql);
    ResultSetMetaData md =re.getMetaData();
    dish some= new dish();
    ArrayList<dish> list= new ArrayList();
    while(re.next())
    {
        some.setId(re.getString("id"));
        some.setCatelog_id(re.getString("Catelog_id"));
        some.setDescribe(re.getString("describe"));
        some.setImge(re.getString("image"));
        some.setName(re.getString("name"));
        some.setPrice(re.getFloat("price"));
        some.setSupplier(re.getString("supplier"));
        list.add(some);
    }

    for(dish ds:list)
    {
        System.out.print("   "+ds.getId()+"hello");
    }


    有两个对象 对象里分别有id11 和id22 两个属性
    以上代码 使用 for each 输出的结果 只有两个id22  
    这是为什么  
    另外有没有更好 的方法来访问数据库并封装到list表中? 使用反射的话可以详细讲解吗? 谢谢!
  • 写回答

4条回答

  • 于金龙 2015-09-03 10:34
    关注

    输出2个id22的原因是:你只创建了一个dish对象。而list中保存dish,保存的是该对象的引用。

    想正确存储,你可以讲代码

      dish some= new dish();
    

    放到

     while(re.next())
    

    这个while循环的里面。

    至于较好的方法,随便进个公司,都会有封装好的现成的方法吧,不仅要保存数据,还要保存字段名称、字段类型等。

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable