como funciona o driver odbc?

2

Eu tenho um aplicativo hospedado no jboss. use o driver jdbc do oracle para conectar-se a um banco de dados oracle 10.2g. Alguém pode orientar o que acontece quando uma sessão é estabelecida.

Apenas tentando entender o funcionamento interno do JDBC / ODBC.

Qualquer ajuda é apreciada.

    
por Viky 05.10.2009 / 17:20

2 respostas

6

Bem, primeiro, JDBC e ODBC não são compatíveis. O JDBC foi a resposta do Java ao ODBC, e eles preenchem o mesmo nicho, mas você não pode se conectar a uma fonte de dados ODBC usando o JDBC e vice-versa. Agora há uma ponte jdbc-odbc em Java, mas isso é um hack de compatibilidade, não um conector nativo (a tradução será JDBC- > ODBC- > (Banco de Dados de Destino) em vez de JDBC- >

O ODBC é simplesmente uma interface padronizada para acessar dados de diferentes bancos de dados. Você instala o driver ODBC to (qualquer banco de dados) em sua máquina, cria uma origem de dados ODBC e pode se conectar a essa origem de dados via odbc em vez de configurar um driver nativo para o banco de dados original. Ou, se o banco de dados for compatível com ODBC, você poderá se conectar diretamente a ele importando o driver.

O benefício é que você pode escrever todo o seu código para ser compatível com o odbc e ele funcionará apenas com pequenas modificações, independentemente do tipo real do banco de dados.

O negativo é um impacto no desempenho e um comportamento estranho ocasional, uma vez que o odbc não consegue traduzir alguma ação específica do banco de dados exatamente da maneira correta. Suporte varia. Se você estiver usando o ODBC para se conectar a algum banco de dados legado, você pode ter muito trabalho a fazer, mas se você estiver usando-o para se conectar a um banco de dados de acesso, ele funcionará perfeitamente.

O processo que acontece na conexão é relativamente simples. Você envia sua consulta "padronizada", o driver JDBC ou ODBC traduz na estrutura nativa que você está tentando acessar e, em seguida, envia a consulta. Se o banco de dados retornar alguma coisa, o processo será revertido.

Se você tiver problemas, verifique o driver que está usando. Se você importar um driver ruim com java, nada funcionará corretamente. A primeira coisa que você precisa fazer é registrar o erro. Se você estiver usando uma fonte de dados ODBC, basta ativar o logon nas propriedades (consulte a documentação do driver para descobrir as configurações corretas; elas variam).

Se você estiver usando o JDBC, provavelmente terá que capturar e registrar o SQLException por conta própria.

    
por 05.10.2009 / 17:48
0

Primeiro de tudo, ODBC e JDBC são APIs completamente diferentes (embora com o mesmo propósito, ou seja, fazer interface com um banco de dados).

Quanto ao funcionamento interno do JDBC:

Grosso modo, o driver JDBC abrirá uma conexão com o banco de dados que você deseja usar e transmitirá suas consultas para execução, retornando os resultados. Como exatamente isso depende do driver JDBC específico que você usa (o driver é específico para cada DBMS). Alguns usarão o JNI para chamar bibliotecas não Java (por exemplo, o "driver OCI" para Oracle), outros implementarão o protocolo completo para falar com o DBMS em Java (por exemplo, "driver thin" da Oracle, driver do MySQL).

Se você precisar de informações mais específicas, esclareça sua dúvida.

As páginas da Wikipedia sobre JDBC e ODBC também fornecem uma boa visão geral do assunto.

    
por 05.10.2009 / 17:47