boa noite, estou precisando criar uma classe de conexão que acesse 3 bancos, preciso de um crud nestes bancos, isto deve ser feito apenas pela aplicação.
ConnectionFactory que deve acessar multiplos database
8 Respostas
Vai usar oq? Hibernate? JDBC? Hibernate/JPA?
Se for Hibernate e ou JPA você teria que ter vários Persistence Units dentro do mesmo arquivo xml.
Preciso usar o JDBC
Estou com a idéia de criar 3 classes de conexao e instanciar elas e verificar se a conexão deu certo, se sim pula para a proxima conexao, se não deve fazer a mesma coisa que é testar a proxima
Estou com a idéia de criar 3 classes de conexao e instanciar elas e verificar se a conexão deu certo, se sim pula para a proxima conexao, se não deve fazer a mesma coisa que é testar a proximaAí vai da sua necessidade.
Pelo visto, sua ideia ta ok.
Porque você não faz algo assim entao:
public class ConnectionFactory
{
private Connection conexao;
private final String DRIVER_MYSQL = "com.mysql.jdbc.Driver";
private final String URL_BANCO_A = "jdbc:mysql://localhost:3306/bancoA";
private final String URL_BANCO_B = "jdbc:mysql://localhost:3306/bancoB";
private final String URL_BANCO_C = "jdbc:mysql://localhost:3306/bancoC";
public Connection getConexaoA()
{
this.conexao = getConexao(DRIVER_MYSQL, URL_BANCO_A, "xxx", "xxx");
return this.conexao;
}
public Connection getConexaoB()
{
this.conexao = getConexao(DRIVER_MYSQL, URL_BANCO_B, "xxx", "xxx");
return this.conexao;
}
public Connection getConexaoC()
{
this.conexao = getConexao(DRIVER_MYSQL, URL_BANCO_C, "xxx", "xxx");
return this.conexao;
}
private Connection getConexao(String driver,String url,String login,String senha)
{
try
{
Class.forName(driver);
return DriverManager.getConnection(url,login,senha);
}
catch(ClassNotFoundException clnfe)
{
throw new RuntimeException(clnfe);
}
catch(SQLException sqle)
{
throw new RuntimeException(sqle);
}
}
}
neste caso, como faço a verificação para saber se as conexoes estão ativas e passar para a proxima conexao?
Então faz um ArrayList com as URL’s e usa somente o metodo getConexao(muda ele pra public)…ai na classe que chama, vc faz um for nas URLs, se a conexão voltar, vc armazena ela e da um break; no for, caso contrário deixa rolar, a´te achar uma conexao valida…se chegar no final e a Conexao estiver null, apresente o erro ao usuário e pronto.
muito obrigado pessoal, juntei minhas idéias com as de vc e foi resolvido o problema. vlw msm