1
resposta

[Dúvida] Novas conexões continuam sendo geradas.

Parecido com a dúvida de outra pessoa, a cada requisição 10, novas conexões são abertas sobre as anteriores. Para verificar eu inclusive peguei apenas o código da aula no github e rodei ele, a mesma coisa continua acontecendo.

1 resposta

Olá, Rafael! Entendo que você esteja tendo problemas com a geração de novas conexões a cada requisição. Isso pode ser devido a uma implementação incorreta do pool de conexões ou a uma falta de fechamento adequado dos recursos do banco de dados.

Na aula, foi mencionado que é importante fechar os recursos do banco de dados, como PreparedStatement, ResultSet e Connection, para evitar o acúmulo de conexões no banco. Se esses recursos não forem fechados corretamente, novas conexões continuarão sendo abertas e acumuladas.

Também foi mencionado o uso do pool de conexões, que é um recurso que permite reutilizar conexões abertas, em vez de abrir novas conexões a cada requisição. Isso é feito através da biblioteca HikariCP.

Aqui está um exemplo de como o pool de conexões foi implementado na aula:

public class ConnectionFactory {

    public Connection recuperarConexao() {
        try {
            return createDataSource().getConnection();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

    private HikariDataSource createDataSource() {
        HikariConfig config = new HikariConfig();
        config.setJdbcUrl("jdbc:mysql://localhost:3306/byte_bank");
        config.setUsername("root");
        config.setPassword("root");
        config.setMaximumPoolSize(10);

        return new HikariDataSource(config);
    }
}

Nesse exemplo, a função createDataSource() cria um HikariDataSource com um tamanho máximo de pool de 10. A função recuperarConexao() então obtém uma conexão desse pool de conexões.

Por favor, verifique se você está fechando corretamente os recursos do banco de dados e se o pool de conexões está sendo implementado corretamente. Se o problema persistir, pode ser útil verificar a documentação da biblioteca HikariCP ou procurar por problemas semelhantes enfrentados por outros desenvolvedores.

Espero ter ajudado e bons estudos!