
# 处理结果集
#### 在结果集中定位
ResultSet对象具有指向其当前数据行的光标。最初，光标被置于第一行之前。next方法将光标移动到下一行；因为该方法在ResultSet对象没有下一行时返回false，所以可以在while循环中使用它来迭代结果集。但对于可滚动的结果集，JDBC驱动程序提供更多的定位方法，使ResultSet指向特定的行。定位方法如[表1]所示。
 表1在结果集中定位的方法 
| 方法            | 描述                    |
|:---|:---|
| next()        | 把ResultSet向下移动一行。     |
| previous()    | 把ResultSet向上移动一行。     |
| beforeFirst() | 把ResultSet定位到第一行之前。   |
| afterLast()   | 把ResultSet定位到最后一行之后。  |
| first()       | 把ResultSet定位到第一行。     |
| last()        | 把ResultSet定位到最后一行。    |
| absolute(int) | 把ResultSet移动到参数指定的行数。 |
   
#### 获取结果集中光标的位置
对于可滚动的结果集，可能会调用定位方法来改变光标的位置。JDBC驱动程序提供了获取结果集中光标所处位置的方法。获取光标位置的方法如[表2]所示。
 表2获取结果集光标的位置 
| 方法              | 描述         |
|:---|:---|
| isFirst()       | 是否在一行。     |
| isLast()        | 是否在最后一行。   |
| isBeforeFirst() | 是否在第一行之前。  |
| isAfterLast()   | 是否在最后一行之后。 |
| getRow()        | 获取当前在第几行。  |
   
#### 获取结果集中的数据
ResultSet对象提供了丰富的方法，以获取结果集中的数据。获取数据常用的方法如[表3]所示，其他方法请参考JDK官方文档。
 表3ResultSet对象的常用方法 
| 方法                                   | 描述              |
|:---|:---|
| int getInt(int columnIndex)          | 按列标获取int型数据。    |
| int getInt(String columnLabel)       | 按列名获取int型数据。    |
| String getString(int columnIndex)    | 按列标获取String型数据。 |
| String getString(String columnLabel) | 按列名获取String型数据。 |
| Date getDate(int columnIndex)        | 按列标获取Date型数据    |
| Date getDate(String columnLabel)     | 按列名获取Date型数据。   |
   
