JAVAWarningDatabase ErrorJune 20, 2026

Database Error

Cannot execute query: 'SELECT * FROM users WHERE id = ?': ResultSet is closed

What This Error Means

This error occurs when you try to access a result set after it has been closed, typically after a database query.

Why It Happens

This error often happens when you're using a try-with-resources statement to execute a query, but then trying to access the result set outside of the try block. It can also occur if you're closing the result set manually.

How to Fix It

  1. 1To fix this error, make sure to access the result set within the try block where it's created, or store it in a variable that persists beyond the try block. If you need to close the result set manually, do so after you've finished using it.

Example Code Solution

❌ Before (problematic code)
Java
try (Connection conn = DriverManager.getConnection(...); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM users WHERE id = ?"); System.out.println(rs.getString("name"));)
✅ After (fixed code)
Java
try (Connection conn = DriverManager.getConnection(...); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM users WHERE id = ?"); if (rs != null) { try { rs.next(); System.out.println(rs.getString("name")); } finally { rs.close(); }}

Fix for Cannot execute query: 'SELECT * FROM users WHERE id = ?': ResultSet is closed

Related JAVA Errors

Related JAVA Blog Articles

Have a different error? Get an instant explanation.

Explain Another Error