try
            {
                PreparedStatement psm=con.prepareStatement("select * from pubs where id=?");
                psm.setString(1,jTextID.getText());
                rs=psm.executeQuery();
                rs.next();//为什么需要调用这个方法呢?
                try
                {
                    jTextID.setText(rs.getString(1));
                    jTextName.setText(rs.getString(2));
                }
                catch(Exception ex)
                {
                    ex.printStackTrace();
                }
            }
            catch(Exception ex)
            {
                ex.printStackTrace();
            }
        }

解决方案 »

  1.   

    boolean next() 
              Moves the cursor down one row from its current position. 
    游标初始位置是0
    下移一个位置到第一条记录
      

  2.   

    如lsj19830812(李逵)所说 游标初始位置是0 需要下移一个位置才能 指向结果集的第一条记录如果在这里 没有移位的话 后面
    jTextID.setText(rs.getString(1));
    jTextName.setText(rs.getString(2));
    就不能得到正确的结果至于为什么会把游标初始化为0 而不是指向第一条记录 考虑一下当返回结果集是一个空集的情况就会很容易明白了
      

  3.   

    初始的结果集没有指向第一条记录的,必须调用next方法。
    一般 if(rs.next()) or while(rs.next())