This section describes how to close ResultSet objects with the res.close() method.
For each ResultSet object you received from a SELECT statement execution,
there is large amount of resource allocated to this object.
When you no longer need any data from a ResultSet object, you should close it
with the res.close() method.
This tutorial Java program shows you how to do this:
/**
* CloseResultSet.java
* Copyright (c) 2007 by Dr. Herong Yang. All rights reserved.
*/
import java.sql.*;
public class CloseResultSet {
public static void main(String [] args) {
Connection con = null;
try {
// Load Microsoft JDBC Driver 1.0
Class.forName(
"com.microsoft.sqlserver.jdbc.SQLServerDriver");
// Obtaining a connection to SQL Server
con = DriverManager.getConnection(
"jdbc:sqlserver://localhost:1269;"
+ "user=sa;password=HerongYang;"
+ "database=AdventureWorksLT");
// Run a SELECT statement
Statement sta = con.createStatement();
ResultSet res = sta.executeQuery(
"SELECT * FROM SalesLT.Customer");
res.next();
String firstName = res.getString("FirstName");
String lastName = res.getString("LastName");
System.out.println("First customer: "+firstName+" "+lastName);
// Closing the ResultSet object
res.close();
if (res.isClosed())
System.out.println("ResultSet closed.");
con.close();
} catch (java.lang.ClassNotFoundException e) {
System.err.println("ClassNotFoundException: "
+e.getMessage());
} catch (SQLException e) {
System.err.println("SQLException: "
+e.getMessage());
}
}
}
If you run this program, you will get:
First customer: Orlando Gee
Exception in thread "main" java.lang.AbstractMethodError:
com.microsoft.sqlserver.jdbc.SQLServerResultSet.isClosed()Z
at CloseResultSet.main(CloseResultSet.java:32)
As you can see, the res.close() method worked ok. But the res.isClosed() method
gave an error, because res.isClosed was introduced in Java SE 6.0, and is not by Microsoft JDBC Driver 1.0.