日期:2014-05-20  浏览次数:20606 次

java.sql. next()
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();
                        }
                }

------解决方案--------------------
boolean next()
Moves the cursor down one row from its current position.
游标初始位置是0
下移一个位置到第一条记录
------解决方案--------------------
为什么要移动呢
------解决方案--------------------
如lsj19830812(李逵)所说 游标初始位置是0 需要下移一个位置才能 指向结果集的第一条记录

如果在这里 没有移位的话 后面
jTextID.setText(rs.getString(1));
jTextName.setText(rs.getString(2));
就不能得到正确的结果

至于为什么会把游标初始化为0 而不是指向第一条记录 考虑一下当返回结果集是一个空集的情况就会很容易明白了
------解决方案--------------------
初始的结果集没有指向第一条记录的,必须调用next方法。
一般 if(rs.next()) or while(rs.next())