JDBC conexão com o banco alguem me ajuda

2 respostas
Pedro.Hendrixx

Na conexão com o banco, o objeto Connection é fornecido pelo driver através do método getconnection(); Então, alguma classe lá do driver implementa essa interface?

Como se fosse assim?

//classe de  conexão. 
 
Class Conexao  implements  Connection{


//implementação de Connection
aqui cada banco implementa os métodos dessa interface de sua forma?

   String url (aqui tem drive, uri, nome do banco, usuário,senha)

}


 o método getconnection faz assim?




Connection getConnection(url){

if (url == urlMysql){

return Connection = new Conexaomysql;
}

else if(url == urlsqlserver){

return Connection = new Conexaosqlserver;
}

}

ou seja ele retorna um objeto da classe conexão com os todos os métodos da interface Connection implentados?

2 Respostas

Jonas_B_a_r_r_o_s

Melhor você apenas importar a Classe Connection, você vai poder usar o metodo que preferir. Pode sobrescrever o getConnection e fazer o teu proprio.

L

Pedro,

Na verdade, existem dois elementos distintos aí: A interface e o driver. Cada banco de dados tem o seu driver específico, que condiz com a forma de tratar do próprio banco. Para você utilizar um banco de dados qualquer, você precisa baixar o driver e anexá-lo em seu projeto. Esse driver é construído por uma especificação/padronização definida pelo java. Já as interfaces criam seus métodos sobre essa especificação, permitindo a utilização do banco de dados. Chamamos de JDBC o conjunto dessas interfaces presentes no pacote java.sql
Portanto, o banco de dados não implementa nenhum método, ele cria o driver de acordo com o solicitado pela especificação e as interfaces (como o Connection, por exemplo) se encarregam do restante.

É interessante você criar sua própria interface? Claro que não… Primeiramente, o pacote java.sql é gratuito e open-source, não há necessidade de reescrever. Segundo, qualquer mudança na especificação dos drivers, você será obrigado a alterar suas interfaces. Enquanto não trocar, drivers novos não permitirão a conexão da sua aplicação com o BD

Dessa forma, você poderia escrever
Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost/projeto, "root", "root");
ou
Connection conexao = DriverManager.getConnection("jdbc:postgresql://localhost:5432/projeto, "root", "root");
Para os bancos MySQL e PostgreSQL

Criado 24 de junho de 2016
Ultima resposta 24 de jun. de 2016
Respostas 2
Participantes 3