Java で 1 つの SQL ステートメントを実行するには、多くの手順が必要です。
- 接続を作成
- ステートメントを作成
- ステートメントの実行、結果セットの作成
- 結果セットを閉じる
- ステートメントを閉じる
- 接続を閉じる
これらの各ステップで、SQLException がスローされる可能性があります。すべての例外を処理し、すべてのリソースを正しく解放すると、コードは次のようになり、4 レベルの TRY が積み重なって表示されます。
try {
Connection connection = dataSource.getConnection();
try {
PreparedStatement statement = connection.prepareStatement("SELECT 1 FROM myTable");
try {
ResultSet result = statement.executeQuery();
try {
if (result.next()) {
Integer theOne = result.getInt(1);
}
}
finally {
result.close();
}
}
finally {
statement.close();
}
}
finally {
connection.close();
}
}
catch (SQLException e) {
// Handle exception
}
消費されたすべてのリソースを解放しながら、ステートメントを実行するためのより良い (より短い) 方法を提案できますか?