Selecionar Banco em tempo de execução

Olá pessoal…

gostaria de saber se exite alguma possibilidade do usuario poder selecionar o banco em tempo de execução…

por exemplo… ele entra numa pagina onde teria uma lista contendo varios bancos… ele clicaria e daria um ok…
e aquele banco o utilizado.

Fala bruno_savi,

Pode sim cara, isso depende muito de como você esta fazendo a conexão, vou supor que é pelo método mais comun:

Connection con = DriverManager.getConnection(String url);

Então, o que você poderia fazer é por exemplo, amarzenar a váriavel Connection na sessão, e realizar o método da conexão somente uma vez.

Bom, ai você realizar de várias maneiras, mas depende muito de como esta fazendo.

Espero ter dado uma clareada.


Abs,

Bruno Tafarelo

Pelo que eu conheço da parte Java EE, a resposta é não!

Quando se usa JPA ou via JDBC direto, você obtém uma Connection via DataSource, que por sua vez, é um recurso gerenciado pelo contêiner. Você sempre obtém o DataSource via JNDI, e a configuração de dados é sempre via intyerface gráfica do servidor ou arquivo XML que você põe em algum lugar.

Na minha opinião, mudar banco de dados em tempo de execução é uma funcionalidade esdrúxula. Primeiro porque banco de dados é definido em tempo de deployment, e no caso, não há nenhum impedimento do adminstrador cuidar das configurações do servidor. Outra, como a aplicação depende dos dados armazenados, permitir que o usuário mude de banco implica que se tem que fazer uma CÓPIA dos dados de um banco pra outro, que pode levar HORAS!

Se isso for uma necessidade real, não uma mera curiosidade sua, considere entender o porquê desse pedido.

(post duplicado)

Leonardo,

Acho que tudo depende da aplicação que esta sendo desenvolvida.

Caso seja um frontend para um servidor de banco de dados, normal.

Ou caso seja uma nova interface para integrar alguns sistemas já rodando numa empresa, já tive que fazer isso.

O fato de mudar, não quer dizer que os dados são “deveriam” ser os mesmos, e também não quer dizer que precise mudar os objetos necessáriamente.

Basta criar os datasources necessários e acessa-los conforme a necessidade.


Abs,

Bruno Tafarelo