Оглядываясь назад, я обнаружил, что время от времени писал:
ResultSet rs = conn.createStatement().executeQuery("select * from main");
//snip
rs.close();
и иногда я писал
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("Select * from main");
//snip
rs.close();
st.close();
Во втором сегменте кода более очевидно, что Statement закрыт, но он также закрыт в первом? conn.createStatement () возвращает объект оператора, но когда он создается таким образом, я не вижу простого способа закрыть его после завершения. Должен ли я просто переписать различные биты кода для использования метода # 2?