В конструкции try-with-resources можно открывать несколько ресурсов, перечисляя их через точку с запятой:
public void dropUsersTable() {
String SQL = "DROP TABLE IF EXISTS user";
try (Connection connection = getConnection();
Statement statement = connection.createStatement())
{
statement.executeUpdate(SQL);
System.out.println("Table delete");
} catch (SQLException e) {
e.printStackTrace();
}
}
В приведённом выше коде закроется и statement
, и connection
, что абсолютно корректно.
Теоретически, переменную connection
можно не объявлять:
public void dropUsersTable() {
String SQL = "DROP TABLE IF EXISTS user";
try (Statement statement = getConnection().createStatement())
{
statement.executeUpdate(SQL);
System.out.println("Table delete");
} catch (SQLException e) {
e.printStackTrace();
}
}
Однако в таком случае statement
хоть и закроется, но останется открытым соединение к базе данных, что очень нежелательно. Поэтому лучше использовать первый вариант кода.