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