Doing a select statement without leaking connections.
Pay special attention to the finally strategy:
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = JDNIConnectionFactory.getJNDIConnection(dataSourceName);
stmt = conn.prepareStatement("SELECT * FROM homeinv.Item ORDER BY item_id");
rs = stmt.executeQuery();
while ( rs.next() ) {
getItems().add(readItem(rs));
}
} catch ( Exception exc ) {
exc.printStackTrace();
} finally {
try { if ( rs!= null) rs.close(); } catch (Throwable t) {}
try { if ( stmt!= null) stmt.close(); } catch (Throwable t) {}
try { if ( conn!= null) conn.close(); } catch (Throwable t) {}
}