处理结果集
设置结果集类型
不同类型的结果集有各自的应用场景,应用程序需要根据实际情况选择相应的结果集类型。在执行SQL语句过程中,都需要先创建相应的语句对象,而部分创建语句对象的方法提供了设置结果集类型的功能。具体的参数设置如表1所示。涉及的Connection的方法如下:
         1 2 3 4 5 6 7 8  | 
        
         //创建一个Statement对象,该对象将生成具有给定类型和并发性的ResultSet对象。 createStatement(int resultSetType, int resultSetConcurrency); //创建一个PreparedStatement对象,该对象将生成具有给定类型和并发性的ResultSet对象。 prepareStatement(String sql, int resultSetType, int resultSetConcurrency); //创建一个CallableStatement对象,该对象将生成具有给定类型和并发性的ResultSet对象。 prepareCall(String sql, int resultSetType, int resultSetConcurrency);  | 
       
| 
         参数  | 
       
         描述  | 
      
|---|---|
| 
         resultSetType  | 
       
         表示结果集的类型,具体有三种类型: 
 
          说明: 
          结果集从数据库中读取了数据之后,即使类型是ResultSet.TYPE_SCROLL_SENSITIVE,也不会看到由其他事务在这之后引起的改变。调用ResultSet的refreshRow()方法,可进入数据库并从其中取得当前游标所指记录的最新数据。  | 
      
| 
         resultSetConcurrency  | 
       
         表示结果集的并发,具体有两种类型: 
  | 
      
在结果集中定位
ResultSet对象具有指向其当前数据行的光标。最初,光标被置于第一行之前。next方法将光标移动到下一行;因为该方法在ResultSet对象没有下一行时返回false,所以可以在while循环中使用它来迭代结果集。但对于可滚动的结果集,JDBC驱动程序提供更多的定位方法,使ResultSet指向特定的行。定位方法如表2所示。
获取结果集中光标的位置
对于可滚动的结果集,可能会调用定位方法来改变光标的位置。JDBC驱动程序提供了获取结果集中光标所处位置的方法。获取光标位置的方法如表3所示。
获取结果集中的数据
ResultSet对象提供了丰富的方法,以获取结果集中的数据。获取数据常用的方法如表4所示,其他方法请参考JDK官方文档。
| 
         方法  | 
       
         描述  | 
      
|---|---|
| 
         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型数据。  |