A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨海波 中级黑马   /  2012-6-2 12:24  /  1500 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨海波 于 2012-6-9 10:12 编辑

部分代码:
  1. ResultSet rs = rm.QueryMachine(sql);
  2. ArrayList<ResultSet> list = new ArrayList<ResultSet>();
  3. String[] str = new String[3];
  4. try
  5. {
  6.         while (rs.next())
  7.         {
  8.                 list.add(rs);
  9.         }
  10.         rs.beforeFirst();
  11.         if(rs.next())
  12.                 System.out.println(list.get(0).getString(1)+list.get(1).getString(1));
  13. }
复制代码
为什么输出来的值是一样的,比如到上面那个地方List里面所存放的每个对象都是rs的第一条记录?求指点

2 个回复

倒序浏览
本帖最后由 蒋映辉 于 2012-6-2 15:41 编辑

代码貌似是没有错误的,自己写的代码,自己应该很了解每一句话是做什么的,所以出问题以后,自己想办法解决可能是最好的。找出代码中出问题的地方的能力很重要,下面给你点建议
首先,你应该判断一下你想要从数据库中读取的值是不是都存进数组里去了 可以再循环结束的时候输出一个list.size(),自己计算一下是不是把数据库里的内容都存进去了,
然后,你的数据库的第一条数据跟第二条数据是不是一样的呢?
最后     rs.beforeFirst();

        if(rs.next())
你这两句话都没用了,你已经数据存入集合中了,只要去研究集合就可以了,跟rs已经没关系了
回复 使用道具 举报
谢谢提醒 已解决
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马