Como eu crio um pool de conexões no mysql?
Como eu crio um pool de conexões no mysql?
Você pode ler a resposta neste post:
https://cursos.alura.com.br/forum/topico--duvida-pool-de-conexoes-replicar-em-banco-mysql-o-que-foi-ensinado-com-hsqldb-16433
Marco, eu consegui com o código abaixo:
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource;
public class ConnectionPool {
private DataSource dataSource;
public ConnectionPool() {
MysqlConnectionPoolDataSource pool = new MysqlConnectionPoolDataSource();
pool.setUrl("jdbc:mysql://127.0.0.1:3306/loja-virtual");
pool.setUser("root");
pool.setPassword("");
this.dataSource = pool;
}
public Connection getConnection() throws SQLException {
Connection connection = dataSource.getConnection();
return connection;
}
}
Para tanto, você precisa ter o ConnectorJ disponível no projeto. Veja as instruções de instalação em https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-installing.html
Depois, altere a string de conexão do exemplo de acordo com seu ambiente de desenvolvimento. No exemplo o sistema procurará uma base de dados chamada "loja-virtual" no IP "127.0.0.1"(localhost) e na porta "3306" que é a padrão do MySQL. Ah, e claro, não se esqueça de informar o usuário e a senha nas linhas a seguir.
Eu também usei MySQL durante esse curso. Se quiser ver o código final do meu projeto acesse https://github.com/ghplay/alura-jdbc
Abraço.
Muito obrigado pelas informações
Marco, um detalhe: apesar do código acima funcionar, tenho que rever essa questão. Depois de ver o post citado pelo Gabriel eu pesquisei mais a respeito e parece que essa não é a forma correta de implementar pool de conexões para o MySQL. No link dele há inclusive um exemplo usando a biblioteca C3P0.
Ainda não tive tempo de olhar isso com calma, mas se quiser saber mais, dê uma olhada nos links abaixo:
http://stackoverflow.com/questions/2353569/am-i-using-java-pooledconnections-correctly