Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 06 - Java e BD Teoria
Aula 06 - Java e BD Teoria
Dados
API JDBC
(Java Database Connectivity)
Aplicação Java
• A API JAVA para executar instruções SQL
(Structured Query Language) é a java.sql.*
• Contém as classes para comunicação com o BD
import java.sql.*;
• Resultado de consultas: é sempre tratado como
uma classe em JAVA
• O JDBC é o responsável em garantir a conexão
de Java com BD (contém os rotinas para
tratamento de dados)
• A combinação JAVA - JDBC permite que
programadores escrevam aplicações
multiplataforma. Por exemplo:
A aplicação desenvolvida em Windows funcionará em
Linux, por exemplo
API JDBC
• Promove independência do servidor de
dados para a aplicação
• Não é necessária existência de driver
adicional para comunicação, como o
ODBC.
• Pode ser usada com quaisquer dados
tabulares (como tabelas, planilhas, ...)
• Usa strings SQL como argumentos para
as requisições ao servidor (dinâmica)
JDBC X ODBC (Open
Database Connectivity)
• ODBC muito usado em ambiente Windows e não
é apropriado para Java, porque usa uma interface
em C.
• ODBC precisa ser manualmente instalado em
toda máquina cliente (configurado no Painel de
Controle).
Para usar PostgreSQL, Oracle, ..., em Delphi, temos que
instalar e configurar o driver ODBC específico para cada
SGBD
• JDBC driver é escrito completamente em JAVA, e
o código é automaticamente “instalado” e
portável.
• Com o JDBC o acesso torna-se “nativo”.
Drivers JDBC disponíveis
• SQL Server
• IBM DB2
• Oracle
• Interbase/Firebird
• PostgreSQL
• MySQL
• Informix
• Sybase
• ...
• ODBC/OLE DB
Arquitetura de duas camadas
• Aplicação “fala” (se comunica)
diretamente com a Base de Dados (a
aplicação sabe onde está o BD)
• Instruções SQL são levadas para a Base
de Dados e os resultados são enviados
de volta para a aplicação
Arquitetura de três camadas
• Instruções SQL são enviadas para um servidor de
aplicação (camada intermediária), que realiza o
tratamento dos dados e somente depois há envio à
Base de Dados.
• Somente o servidor de aplicação conhece o BD.
• Provê vantagens de desempenho (o cliente não
precisa ser robusto) – aplicações Web e Desktop
em camadas.
• O servidor de aplicação precisa ser robusto!
Como implemento uma aplicação em Delphi?
Quais objetos/componentes necessito?
• E em Java?
• Como funciona?
• Quais classes deverei utilizar?
• Qual a sequência de comandos
para inserir um
• CLIENTE?
• E para retornar os dados?
Principais classes da API
java.sql.*
• Driver - intermediação entre aplicação e SGBD. É o
carregamento do JDBC na aplicação.
• Connection – responsável pela conexão com o BD
(depende do JDBC, servidor, caminho, usuário e
senha) = IBDatabase +IBTransaction em Delphi.
• DriverManager - gerencia os diferentes drivers
carregados. Trabalha em conjunto com a classe
anterior, para garantir o sucesso da conexão.
• Statement – é a classe que emite SQL para
modificação ou consulta = semelhante ao IBQuery.
• ResultSet – recebe o resultado de consulta
realizada pela classe Statement = semelhante ao
DataSource.
Connection
• Representa uma conexão (sessão) com um
determinado banco de dados
• Necessita de um driver JDBC carregado para
realizar a conexão
• Através desta classe, são criados objetos
Statement para requisições ao BD (comandos
SQL)
• Gerencia transações (commit/rollback)
• Possibilita obter informações sobre a base de
dados em tempo de execução (tabelas, visões,
procedimentos armazenados, usuários, etc)
Connection
• Classe DriverManager
A lista de drivers (classes) registrados é obtida através
do método
DriverManager.registerDriverloaded()
O DriverManager carrega e registra automaticamente o
driver através do método
Class.forName(“nome do driver”);
• Estabelecimento de conexão
Uma vez que a classe de driver foi carregada e
registrada com a classe DriverManager, é estabelecida
a conexão com a Base de Dados
Quando uma requisição para conexão é feita com uma
chamada para o método DriverManager.getConnection,
a classe DriverManager testa cada driver disponível
Visão Geral de uma Conexão
• Chamada ao método
DriverManager.getConnection()
String url ="jdbc:postgresql://aplicacao";
Connection conexao =
DriverManager.getConnection(url,”usuario”,
”senha”);
Statement
• Possibilita enviar requisições SQL através de
uma conexão associada
• Tipos de requisições:
consultas (sempre retornam um ResultSet):
Statement.executeQuery (SQL)
Em Delphi seria: IBQuery.Open
String s = Resultados.getString(”username");
String s = Resultados.getString(2);
Dúvidas?