Java ResultSet getType()方法与示例

java.sql.ResultSet中的接口表示由SQL语句返回这样的表格数据。

ResultSet对象保存由执行查询数据库的语句的方法返回的表格数据(通常是Statement接口的executeQuery()方法)。

ResultSet对象的类型根据您可以遍历的方向及其灵敏度确定结果集的类型。(在ResultSet中完成的更改是否反映在数据库中)

ResultSet接口提供三个值来指定ResultSet类型,即-

  • TYPE_FORWARD_ONLY-光标仅沿一个方向移动的ResultSet对象被称为仅向前ResultSet。缺省情况下,JDBC结果集是仅转发结果集,用整数1003表示。

  • TYPE_SCROLL_INSENSITIVE -ResultSet光标向前或向后移动。这种类型的ResultSet对数据库中所做的更改不敏感,即数据库中所做的修改未反映在ResultSet中,并由整数1004表示。

  • TYPE_SCROLL_SENSITIVE -ResultSet光标向前或向后移动。这种类型的ResultSet对数据库中所做的更改敏感,即,数据库中所做的修改将反映在ResultSet中,并由整数1005表示。

ResultSet 接口的 getType()方法检索当前ResultSet的类型。

此方法返回一个整数值,该值表示ResultSet对象的类型。

示例

让我们使用CREATE语句在MySQL数据库中创建一个名为MyPlayers的表,如下所示-

CREATE TABLE MyPlayers(
   ID INT,
   First_Name VARCHAR(255),
   Last_Name VARCHAR(255),
   Date_Of_Birth date,
   Place_Of_Birth VARCHAR(255),
   Country VARCHAR(255),
   PRIMARY KEY (ID)
   );

现在,我们将使用INSERT语句在MyPlayers表中插入7条记录-

insert into MyPlayers values(1, 'Shikhar', 'Dhawan', DATE('1981-12-05'), 'Delhi', 'India');
insert into MyPlayers values(2, 'Jonathan', 'Trott', DATE('1981-04-22'), 'CapeTown', 'SouthAfrica');
insert into MyPlayers values(3, 'Kumara', 'Sangakkara', DATE('1977-10-27'), 'Matale', 'Srilanka');
insert into MyPlayers values(4, 'Virat', 'Kohli', DATE('1988-11-05'), 'Delhi', 'India');
insert into MyPlayers values(5, 'Rohit', 'Sharma', DATE('1987-04-30'), 'Nagpur', 'India');
insert into MyPlayers values(6, 'Ravindra', 'Jadeja', DATE('1988-12-06'), 'Nagpur', 'India');
insert into MyPlayers values(7, 'James', 'Anderson', DATE('1982-06-30'), 'Burnley', 'England');

下面的示例检索MyPlayers表的内容作为ResultSet对象,并显示ResultSet的类型。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ResultSet_getType {
   public static void main(String args[]) throws SQLException {
      //注册驱动程序
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //获得连接
      String mysqlUrl = "jdbc:mysql://localhost/mydatabase";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //创建语句
      Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
      //查询以检索记录
      String query = "Select * from MyPlayers";
      //执行查询
      ResultSet rs = stmt.executeQuery(query);
      //检索当前ResultSet对象的数据类型
      int resultSet_Type = rs.getType();
      System.out.println("Type of the ResultSet object: "+resultSet_Type);
   }
}

输出结果

Connection established......
Type of the result set: 1005