ConnectionFactory que deve acessar multiplos database

8 respostas
I

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.

8 Respostas

Hebert_Coelho

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.

I

Preciso usar o JDBC

I

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

Hebert_Coelho

infoporto:
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
Aí vai da sua necessidade.

Pelo visto, sua ideia ta ok.

guilherme.dio

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);
		}
	}
}
I

neste caso, como faço a verificação para saber se as conexoes estão ativas e passar para a proxima conexao?

guilherme.dio

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.

I

muito obrigado pessoal, juntei minhas idéias com as de vc e foi resolvido o problema. vlw msm

Criado 11 de maio de 2012
Ultima resposta 14 de mai. de 2012
Respostas 8
Participantes 3