Conectividade de banco de dados Java

Você conhece os fundamentos do SQL. Isso é bom. Mas hoje você vai se sentir ainda melhor. Hoje você começará a aprender como trabalhar com um banco de dados de um aplicativo Java.

Existem muitos DBMS diferentes, então os criadores do Java decidiram padronizar como um aplicativo Java funciona com bancos de dados. E eles chamaram isso de JDBC padrão : Java DataBase Connectivity .

O JDBC possui 3 interfaces principais:

  • Conexão - responsável pela conexão com o banco de dados
  • Declaração - responsável por consultar o banco de dados
  • ResultSet - responsável pelo resultado da consulta ao banco de dados

Na verdade, isso é tudo. E nem vamos aprender todos os métodos de todas as interfaces. Apenas exemplos de trabalho, que complicaremos gradualmente.

JDBC é um pouco semelhante ao trabalho com servlets. Os criadores do JDBC escreveram várias interfaces e a chamam orgulhosamente de Java DataBase API. E a implementação dessas interfaces foi atribuída aos ... criadores do DBMS. Como é implementado lá - ninguém se importa. Funciona bem.

Existem quatro versões do JDBC e veremos a mais recente. E não porque ela é a mais legal, mas porque ela é a mais simples.

Gerenciador de driver JDBC

O aplicativo Java e o banco de dados se comunicam por meio de uma biblioteca chamada JDBC Driver. Este é um conjunto de classes que implementam a API JDBC para um DBMS específico.

O driver JDBC correto é selecionado usando uma classe chamada DriverManager . Sua interação pode ser representada da seguinte forma:

O problema é que você pode usar In-Memory-DB, No-SQL-DB ou até mesmo um banco de dados integrado a um aplicativo Android. Como desenvolvedor Java, essas nuances não dizem respeito a você. O Gerenciador de Driver selecionará o driver JDBC correto para você e tudo funcionará como um relógio.

A propósito, como ele faz isso?

Conectando ao servidor MySQL

Lembra do que você precisava para se conectar a um servidor SQL local por meio do MySQL Workbench? Se eu esqueci, então eu te lembro, você precisava de três coisas:

  • hospedar
  • Conecte-se
  • senha

Tudo fica claro com login e senha, e host, se você se lembra, é o nome do computador no qual o servidor está localizado. Se estiver localizado em seu computador local, você precisará especificar localhost como o nome do host. E se não for local?

Então você precisa usar ... URL. URL significa Universal Resource Locator . Ele pode ser usado para especificar a localização de qualquer coisa na rede: um site, uma impressora, um servidor SQL. Na verdade, a URL também é usada para acessar o servidor SQL local. Parece algo assim:

mysql://localhost:3306/db_scheme
  • mysql é um protocolo de servidor
  • localhost - nome do host na rede
  • 3306 - porta na qual as requisições são feitas
  • db_scheme - nome do esquema (nome do banco de dados)

Observação. O nome do banco de dados pode ser omitido. Mas se o servidor armazena muitos esquemas de banco de dados, geralmente usuários diferentes e direitos de acesso diferentes são criados para eles. E se o usuário com o qual você faz login no servidor SQL não tiver acesso a todos os bancos de dados, você definitivamente precisará especificar o nome do banco de dados específico ao qual você tem acesso.

No final desta url pode haver vários parâmetros, tipos de codificação, fuso horário, que são considerados parâmetros para a nova conexão com o banco de dados que está sendo estabelecida.

Além disso, o protocolo pode ser composto. Se toda a comunicação com o servidor de banco de dados for feita em um canal criptografado usando o protocolo SSH, a URL poderá ser especificada da seguinte forma:

ssh:mysql://localhost:3306/db_scheme

Um protocolo não é necessariamente um programa externo. Por exemplo, se você estiver trabalhando com um servidor usando o protocolo JNDI, poderá especificá-lo assim:

jndi:mysql://localhost:3306/db_scheme

E se você quiser trabalhar usando o protocolo da API JDBC, precisará escrever assim:

jdbc:mysql://localhost:3306/db_scheme

Quando você tenta criar uma conexão de banco de dados, o JDBC Driver Manager analisa seu SQL-db-URL e determina o nome do driver JDBC a partir do nome do protocolo. Aqui está um pequeno truque.