A maior rede de estudos do Brasil

Grátis
135 pág.
1 - JDBC

Pré-visualização | Página 1 de 4

Introdução
• SGBDs são utilizados para a
implementação de bancos de dados;
• Como permitir que aplicações Java
possam acessar estes bancos de dados
de forma conveniente?
Introdução
• O padrão ODBC:
� Open Database Connectivity;
� Solução proposta em 1992 pela Microsoft;
� Permite a conectividade de aplicações com vários
SGBDs convencionais;
�Para várias linguagens de programação;
� Implementado na linguagem C;
Introdução
• Interação entre aplicação e bancos de
dados via ODBC;
Aplicação
ODBC
Driver
Introdução
• Problemas da solução ODBC para
aplicações java;
� Diferença de linguagem de programação;
� Problemas comuns com a chamada de
métodos nativos;
� Segurança, robustez, portabilidade, etc;
� Java não tem a noção explícita de ponteiros;
JDBC
• API proposta pela Sun em 1997;
• Voltada especificamente para aplicações
java;
• Permite que aplicações java acessem
dados tabulares;
� Especialmente bancos de dados relacionais;
JDBC
• Oferece acesso uniforme a uma grande
quantidade de SGBDs;
� MySQL, SQL Server, Oracle, Postgre SQL, etc;
• Oferece portabilidade para as aplicações
Java;
� A mesma aplicação pode interagir com diferentes
SGBDs;
JDBC
• Com JDBC podemos:
� Estabelecer conexões (locais ou remotas) com
SGBDs;
� Executar comandos SQL DDL e DML;
� Receber e manipular resultados de consultas;
JDBC
• Com JDBC podemos:
� Atualizar o banco de dados;
� Executar procedimentos armazenados;
� Executar transações;
JDBC
• Com JDBC podemos:
� Recuperar informações sobre metadados;
� E várias outras coisas....
JDBC
• A API JDBC é composta por quatro
versões:
� JDBC 1.0;
� JDBC 2.0;
� JDBC 3.0;
� JDBC 4.0;
JDBC
• JDBC 1.0:
� Lançada em 1997, com a primeira versão da
linguagem java;
� Oferece as funcionalidades básicas de acesso a
bancos de dados relacionais;
� Conexões com bancos de dados e execução de
comandos SQL DDL e DML;
JDBC
• JDBC 2.0:
� Lançada em 1998;
� O escopo da API foi ampliado para prover suporte
a aplicações mais avançadas;
� Suporte para características requeridas por
servidores de aplicação;
JDBC
• JDBC 3.0:
� Lançada em 2001;
� O objetivo desta versão era complementar a API
com pequenas funcionalidades que ainda não
eram oferecidas;
�Suporte a savepoints, reuso de prepared
statements em pools de conexões, pools de
conexão configuráveis, etc;
JDBC
• JDBC 4.0:
� Lançada em 2011, com dois objetivos principais:
� Facilitar o desenvolvimento para todos os
desenvolvedores que trabalham com SQL na
plataforma java;
� Prover funcionalidades para expor a API JDBC
para ferramentas e APIs mais poderosas que
gerenciam fontes de dados;
JDBC
• Uma “conversa” entre uma aplicação
java e o SGBD via JDBC é normalmente
realizada em diversas etapas;
� Carregar o driver JDBC;
� Estabelecer uma conexão com o SGBD;
� Executar ações no banco de dados;
� Liberar os recursos utilizados;
� Fechar a conexão;
Carregando o driver JDBC
• Uma aplicação java pode se conectar a
um banco de dados de duas formas:
� Através de um driver JDBC;
� Através de uma ponte JDBC-ODBC;
Carregando o driver JDBC
• Usando um driver JDBC:
� Utilização um driver que implementa a API JDBC
para um SGBD específico;
� É a melhor forma de se utilizar a API;
� Hoje, existem drivers JDBC para praticamente
todos os principais SGBDs;
Carregando o Driver JDBC
• Usando uma ponte JDBC-ODBC:
� As ações JDBC são convertidas para um driver
ODBC, que executa as ações no SGBD;
� Solução útil quando não havia um driver JDBC
disponível para o SGBD;
� Este tipo de conexão deve ser evitada;
Carregando o Driver JDBC
• Para carregar o driver JDBC usamos o
método forName da classe Class;
• Como parâmetro de entrada,
informamos o caminho da classe que
implementa o driver;
� O nome do caminho deve ser totalmente
qualificado;
Carregando o Driver JDBC
• Exemplo:
� Class.forName(“com.informix.jdbc.IfxDriver”);
Nome da classe 
referente ao driver 
JDBC
Carregando o Driver JDBC
• Importante:
� O nome da classe varia de acordo com o driver
utilizado;
� O driver deve estar presente no classpath da
aplicação;
Carregando o Driver JDBC
• Caso a conexão seja realizada através
de uma ponte JDBC-ODBC, a classe
JdbcOdbcDriver deve ser usada;
• Exemplo:
• Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
Carregando o Driver JDBC
• Importante: A partir da versão 4.0, não
é mais necessário carregar o driver
JDBC explicitamente;
� Basta adicionar o driver ao classpath da
aplicação;
Estabelecendo uma conexão
• Para que uma aplicação possa se
comunicar com um banco de dados, ela
deve estabelecer uma conexão com o
mesmo;
Aplicação
Conexão
Estabelecendo uma conexão
• A conexão é o canal de comunicação entre a
aplicação e o banco de dados;
• Uma aplicação pode ter mais de uma conexão
aberta com o banco de dados
simultaneamente;
• Uma aplicação pode abrir conexões
simultâneas com outros bancos de dados;
Estabelecendo uma conexão
• Podemos estabelecer uma conexão com
um banco de dados de duas formas:
� Através da classe DriverManager;
� Através da interface DataSource;
Estabelecendo uma conexão
• Usando a classe DriverManager:
� Classe básica para a criação de conexões com
bancos de dados;
� Foi introduzida na versão 1.0;
� Uma das implementações do método
getConnection pode ser usada para estabelecer a
conexão;
Estabelecendo uma conexão
• Usando a classe DriverManager:
� As informações básicas para a obtenção de uma
conexão são:
�A URL do banco de dados;
�O nome do usuário;
�A senha de acesso;
Estabelecendo uma conexão
• Usando a classe DriverManager:
� Uma forma de se obter uma conexão com um
banco de dados:
Estabelecendo uma conexão
• Usando a classe DriverManager:
� Entretanto, podemos customizar as propriedades
desejadas para a conexão;
� Estas propriedades são configuradas em um
objeto do tipo Properties;
� Usamos o método setProperty para definir o nome
e o valor de uma propriedade da conexão;
Estabelecendo uma conexão
• Usando a classe DriverManager
� Outra forma de se obter uma conexão:
Estabelecendo uma conexão
• Usando a classe DriverManager:
� A primeira forma é mais simples, mas a segunda
permite configurar várias opções para a conexão;
�Uso de SSL, versão do protocolo, codificação de
caracteres, etc;
Estabelecendo uma conexão
• Os mesmos procedimentos podem ser
usados para um acesso via uma ponte
JDBC-ODBC;
• A única diferença é o valor da URL, que
deve ter a seguinte forma:
jdbc:odbc:NomeDaFonteOdbc;
Estabelecendo uma conexão
• Usando a interface DataSource:
� Introduzida a partir da versão 2.0;
� Define as características de uma fonte de dados
que pode ser acessada por uma aplicação;
�Não é necessariamente um banco de dados;
� Esta forma é mais genérica e omite da aplicação
os detalhes sobre o acesso aos dados;
Estabelecendo uma conexão
• Usando a interface DataSource:
� Esta forma é mais utilizada para a implementação
de aplicações corporativas;
�Os objetos podem ser registrados/recuperados
usando a API java JNDI;
� Nesta disciplina, vamos nos ater às conexões
estabelecidas com a classe DriverManager;
Estabelecendo uma conexão
• A interface Connection:
� Define o comportamento de objetos que
representam uma conexão entre a aplicação e um
banco de dados;
� Todas as alternativas de conexão retornam um
objeto deste tipo;
Estabelecendo uma conexão
• A interface Connection:
� Com objetos que implementam esta interface,
podemos realizar operações como:
�Criar objetos para a execução de