Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

autoClose - connection, prepareStatement e resultSet usando try catch.

Pessoas aproveitando aqui o conhecimento de vocês estou com uma dúvida, o professor disse que seria bom abrir a connection , o preparedStatement e o resultSet (esse ultimo eu coloquei por minha conta)

Pois a justificativa é que passando esses objetos o try fecha automaticamente, seja a connection , o preparedStatement ou o resultSet sem precisar de ficar lembrando toda hora de ficar connection.close() , prepareStatement.close() , resultSet.close() a cada implementação.

*Entretanto fica uma coisa muito feia um monte de try catch , aninhados achei um pouco zoneado. Temos alguma outra forma mais bonitinha de fazer isso? *

    try (Connection connection = Database.getConnection()) {
            String sql = "SELECT * FROM produto";
            try (PreparedStatement statement = connection.prepareStatement(sql)) {
                boolean resultado = statement.execute();

                try (ResultSet resultSet = statement.getResultSet()) {

                    System.out.println(resultado);

                    while (resultSet.next()) {

                        System.out.println(String.format("id:%d   | Produto: %s |  Descrição: %s  ",
                                resultSet.getInt("id"), resultSet.getString("nome"), resultSet.getString("descricao")));

                    }
                } catch (Exception e) {
                    e.printStackTrace();
                    System.out.println("erro no resultSet");
                }
            } catch (Exception e) {
                e.printStackTrace();
                System.out.println("erro no prepareStatment");
            }
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("Erro ao abrir conexão");
        }
2 respostas
solução

Fala ai Wesley, de boa ?

Trabalhar com JDBC era meio que infernal mesmo :(

Acho que o ponto é nem se preocupar tanto com isso por hora, sendo que 99.9% dos sistemas atuais, tem trabalhado com JPA, que já faz pra ti a implementação do JDBC.

Obrigado Matheus vou seguir o conselho.