Introdução à arquitetura JDBC

O Java Database Connectivity (JDBC) é uma API (Application Program Interface) ou interface independente de plataforma que ajuda a conectar programas java a vários bancos de dados, como Oracle, My SQL, MS Access e SQL Server. Ele fornece maneiras de consultar e atualizar o banco de dados usando instruções de atualização SQL (Structured Query Language), como CREATE, DELETE, INSERT e UPDATE e instruções de consulta como SELECT. É quase semelhante ao ODBC (Open Database Connectivity) fornecido pela Microsoft.

Para conectar o programa ou aplicativo java ao banco de dados, há cinco etapas a serem seguidas:

1. Carregar o driver: O driver ajuda a estabelecer uma conexão com o banco de dados, portanto, o driver deve ser carregado uma vez no programa. Isso pode ser feito por dois métodos:

  • Class.forName (): usando isso, o arquivo de classe do driver é carregado na memória durante o tempo de execução. Não há necessidade de criar um novo objeto. Por exemplo:

Class.forName(“oracle.jdbc.driver.OracleDriver”);

  • DriverManager.registerDriver (): Aqui DriverManager é uma classe Java embutida em que o registro é seu membro estático. Usando isso, o construtor da classe driver é chamado durante o tempo de compilação. Neste novo objeto é criado. Por exemplo:

DriverManager.registerDriver(new oracle.jdbd.driver.OracleDriver());

2. Criando conexões: Depois que o driver é carregado, a conexão é configurada. O objeto de conexão usa nome de usuário, senha e URL para configurar a conexão. O URL tem um formato predefinido que contém o nome do banco de dados, o driver usado, o endereço IP em que o banco de dados está armazenado, o número da porta e o provedor de serviços. A conexão pode ser configurada usando o comando:

Connection con = DriverManager.getConnection(URL, user, password);

3. Criando declaração: Após estabelecer a conexão, o usuário pode interagir com o banco de dados. As interfaces como instrução JDBC, PreparedStatement, CallableStatement fornecem métodos que permitem ao usuário enviar instruções SQL e obter dados do banco de dados. O comando usado para criar a instrução é;

Statement stmt = con.createStatement();

4. Executando Consulta: A consulta SQL é executada para interagir com o banco de dados. Uma consulta pode ser para atualizar / inserir no banco de dados ou recuperar dados. A interface de instrução fornece dois métodos, isto é, o método executeQuery () para executar consultas para recuperar dados, enquanto o método executeUpdate () para executar consultas para atualização ou inserção. Por exemplo:

int n = stmt.executeUpdate(“DELETE TABLENAME”);
if(n==1)
System.out.println(“Success”);
else
System.out.println(“Failed”);

5. Fechando a conexão: Depois de executar nossa consulta, o usuário de dados que deseja atualizar ou recuperar foi concluído, agora é hora de fechar a conexão estabelecida. A interface de conexão fornece um método close () para fechar a conexão. Por exemplo:

con.close();

Arquitetura JDBC

O JDBC suporta dois tipos de modelos de processamento para acessar o banco de dados, ou seja, de duas e três camadas.

1. Arquitetura em duas camadas:

Essa arquitetura ajuda o programa ou aplicativo java a se comunicar diretamente com o banco de dados. Ele precisa de um driver JDBC para se comunicar com um banco de dados específico. Consulta ou solicitação é enviada pelo usuário ao banco de dados e os resultados são recebidos de volta pelo usuário. O banco de dados pode estar presente na mesma máquina ou em qualquer máquina remota conectada via rede. Essa abordagem é chamada de arquitetura ou configuração cliente-servidor.

2. Arquitetura em três camadas:

Nisso, não há comunicação direta. As solicitações são enviadas para a camada intermediária, ou seja, o navegador HTML envia uma solicitação ao aplicativo java, que é posteriormente enviada ao banco de dados. O banco de dados processa a solicitação e envia o resultado de volta para a camada intermediária, que então se comunica com o usuário. Aumenta o desempenho e simplifica a implantação do aplicativo.

Componentes da arquitetura JDBC

  • Gerenciador de drivers: é uma classe que contém uma lista de todos os drivers. Quando uma solicitação de conexão é recebida, ela corresponde à solicitação com o driver de banco de dados apropriado, usando um protocolo chamado subprotocolo de comunicação. O driver que corresponde é usado para estabelecer uma conexão.
  • Driver: É uma interface que controla a comunicação com o servidor de banco de dados. Os objetos DriverManager são usados ​​para executar a comunicação.
  • Conexão: É uma interface que contém métodos para entrar em contato com um banco de dados.
  • Instrução: Essa interface cria um objeto para enviar consultas ou instruções SQL ao banco de dados.
  • ResultSet: contém os resultados recuperados após a execução das instruções ou consultas SQL.
  • SQLException: quaisquer erros que ocorram no aplicativo de banco de dados são tratados por esta classe.

O diagrama arquitetural básico do JDBC é mostrado abaixo com o posicionamento de todos os componentes:

Interfaces

O pacote java.sql consiste em muitas interfaces. Algumas interfaces populares são mencionadas abaixo:

  • Interface do Driver: Essa interface permite vários drivers de banco de dados. Os objetos DriverManager são criados para se comunicar com o banco de dados. Esses objetos são criados por DriverManager.registerDriver ();
  • Interface de Conexão: A interface de conexão estabelece a conexão, ou seja, a sessão entre o programa java e o banco de dados. Possui muitos métodos, como rollback (), close () etc.
  • Interface da instrução: essa interface fornece métodos para a execução das consultas SQL. Ele fornece métodos de fábrica para obter um objeto ResultSet. Alguns métodos da interface de instrução são executeQuery (), executeUpdate () etc.
  • Interface PreparedStatement: Essa interface ajuda quando as consultas SQL precisam ser implementadas várias vezes. Ele aceita parâmetros de entrada durante o tempo de execução.
  • Interface CallableStatement: Essa interface é usada quando os procedimentos armazenados devem ser acessados. Também aceita parâmetros durante o tempo de execução.
  • Interface ResultSet: Essa interface ajuda a armazenar o resultado retornado após a execução das consultas SQL.

Tipos de drivers JDBC

Existem quatro tipos de drivers JDBC:

1. Driver Tipo 1 ou Ponte JDBC-ODBC: Este driver atua como uma ponte entre JDBC e ODBC. Ele converte chamadas JDBC em chamadas ODBC e depois envia a solicitação ao driver ODBC. É fácil de usar, mas o tempo de execução é lento.

2. Driver Tipo 2 ou API Nativa Driver Java Parcialmente: Este driver usa a chamada JNI (Java Native Interface) na API do cliente nativo específica do banco de dados. É comparativamente mais rápido que o driver Tipo 1, mas requer biblioteca nativa e o custo do aplicativo também aumenta.

3. Driver Tipo 3 ou Driver de Protocolo de Rede: Esses drivers se comunicam com o servidor de middleware JDBC usando o protocolo de rede proprietário. Esse middleware converte o protocolo de rede em chamadas específicas do banco de dados. Eles são independentes de banco de dados. Eles podem alternar de um banco de dados para outro, mas são lentos devido a muitas chamadas de rede.

4. Driver Tipo 4 ou Thin: Esse driver também é chamado de driver Java puro porque eles interagem diretamente com o banco de dados. Ele não requer nenhuma biblioteca nativa nem servidor de middleware. Ele tem melhor desempenho do que outros drivers, mas comparativamente lento devido a um aumento no número de chamadas de rede.

Conclusão

Este artigo especifica a arquitetura JDBC, suas interfaces e tipos de drivers para se comunicar ou interagir com o banco de dados.

Agora, os bancos de dados de um dia são mantidos em todos os setores, portanto é necessário atualizá-los e recuperar dados deles. Portanto, entender a arquitetura ajudaria a entender os conceitos básicos do JDBC.

Artigos recomendados

Este foi um guia para a arquitetura JDBC. Aqui discutimos os tipos de drivers, interfaces e componentes da arquitetura JDBC. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Como instalar o Java 8?
  2. Perguntas da entrevista JDBC
  3. Como instalar o Apache?