Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

ConnectionFactory como Singleton

Olá.

Na aula a ConnectionFactory foi feita como uma classe instanciável, podendo-se criar diversas vezes o mesmo objeto.

Eu fiz da seguinte maneira:

public class ConnectionFactory {
    private static DataSource dataSource = null;

    private ConnectionFactory() {
    }

    public static Connection getConnection() throws SQLException {
        if (dataSource == null) {
            final ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
            comboPooledDataSource.setJdbcUrl("jdbc:mysql://localhost/loja_virtual?useTimezone=true&serverTimezone=UTC");
            comboPooledDataSource.setUser("root");
            comboPooledDataSource.setPassword("123456");

            // Setando o número máximo de conexões
            comboPooledDataSource.setMaxPoolSize(15);
            dataSource = comboPooledDataSource;
        }
        return dataSource.getConnection();
    }
}

Para fins de performance e até mesmo de funcionalidade, o melhor seria fazer como foi feito na aula ou garantir que não possam ser criadas mais que a quantidade de conexões estipulada?

Criar várias vezes a fábrica de conexões me remete a pensar que cada usuário, ao fazer uma requisição, iria criar mais uma pool com a quantidade de conexões estipulada, voltando ao problema inicial da aula: a criação desenfreada de conexões.

Este pensamento está correto?

No aguardo. Desde já, obrigado!

1 resposta
solução!

Perfeito Jucemar, da sua forma ficou até melhor, pois evita criar vários pools.