Iets als:
Statement stmt = null;
ResultSet rs =null;
try {
stmt = conn.createStatement();
// oracle
rs = stmt.executeQuery("SELECT 1 FROM Dual");
// others
// rs = stmt.executeQuery("SELECT 1");
if (rs.next())
return true; // connection is valid
}
catch (SQLException e) {
// TODO : log the exception ...
return false;
}
finally {
if (stmt != null) stmt.close();
if (rs != null) rs.close();
}
Merk op dat als de verbinding afkomstig is van een verbindingspool (bijvoorbeeld in een toepassingsserver), de pool een mechanisme kan hebben om te controleren of een verbinding geldig is of niet. Met BEA specificeert u de SELECT in de eigenschap "test-on-reserve".
Als u uw eigen pool aan het ontwikkelen bent, wilt u misschien eens kijken hoe anderen het doen (bijv. Proxool).