Você está na página 1de 32

APLICAÇÕES DE LINGUAGEM DE

PROGRAMAÇÃO ORIENTADA A
OBJETOS

ACESSO A BANCO DE DADOS COM O


JDBC

Prof. Thiago Pereira Rique


thiagorique2011@gmail.com
http://thiagorique.wordpress.com/
AGENDA
 Introdução
 A conexão em Java

 Manipulando bancos de dados com o JDBC

 PreparedStatements

 DAO – Data Access Object


INTRODUÇÃO
 Banco de dados

 Sistema de Gerenciamento de Banco de Dados


(SGBD)

 Linguagem SQL

 Java Database Connectivity (JDBC) API


A CONEXÃO EM JAVA
 Temos um único conjunto de interfaces muito
bem definidas que devem ser implementadas.

 Esse conjunto de interfaces fica dentro do pacote


java.sql e nos referimos a ele como JDBC.

Implementação
Aplicação Interface JDBC BD
JDBC. Qual?
A CONEXÃO EM JAVA
 A interface Connection define métodos para
executar uma query, fechar uma conexão, entre
outros.

 Precisamos de classes concretas que


implementem essas interfaces do pacote java.sql.

 Esse conjunto de classes concretas fará a ponte


entre o código cliente que usa a API JDBC e o
banco de dados.

 Drivers JDBC.
A CONEXÃO EM JAVA
 Para abrir uma conexão com um banco de dados,
precisamos de um driver.

 A classe DriverManager é responsável por se


comunicar com o driver.
DriverManager.getConnection(“jdbc:postgresql://localhost/teste”);

Implementação JDBC
Aplicação Interface JDBC BD
PostgreSQL
MANIPULANDO BANCOS DE DADOS COM O
JDBC
 Criando uma classe de conexão (1)

 Continua...
MANIPULANDO BANCOS DE DADOS COM O
JDBC
 Criando uma classe de conexão (1)
MANIPULANDO BANCOS DE DADOS COM O
JDBC
 Criando uma classe de conexão (2)
MANIPULANDO BANCOS DE DADOS COM O
JDBC
 Objeto Connection con;

 Objetos Connection permitem aos programas


criar instruções de SQL que acessem bancos de
dados;

 Método static getConnection da classe


DriveManager;

 O método getConnection aceita três argumentos:


 URL
 Usuário
 Senha
MANIPULANDO BANCOS DE DADOS COM O
JDBC
 URL
 “jdbc:postgresql://localhost:5432/alpoo_lpbd_2012_2”
 Protocolo de comunicação (jdbc)
 Subprotocolo de comunicação (postgresql)
 Localização do banco de dados
(//localhost:5432/alpoo_lpbd_2012_2)

 Fábrica de conexões: controlar um processo


repetitivo e trabalhoso, como abrir uma conexão
com o banco de dados.
MANIPULANDO BANCOS DE DADOS COM O
JDBC
 Consultando um banco de dados

 Continua...
MANIPULANDO BANCOS DE DADOS COM O
JDBC
 Consultando um banco de dados

 Continua...
MANIPULANDO BANCOS DE DADOS COM O
JDBC
 Consultando um banco de dados

 Continua...
MANIPULANDO BANCOS DE DADOS COM O
JDBC
 Consultando um banco de dados

 Continua...
MANIPULANDO BANCOS DE DADOS COM O
JDBC
 Consultando um banco de dados

 Continua...
MANIPULANDO BANCOS DE DADOS COM O
JDBC
 Consultando um banco de dados
MANIPULANDO BANCOS DE DADOS COM O
JDBC
 Método Connection prepareStatement.

 Utilização de um objeto PreparedStatement para


enviar instruções de SQL ao banco de dados.

 Método execute do objeto PreparedStatement


para submeter uma consulta.
MANIPULANDO BANCOS DE DADOS COM O
JDBC
 Método executeQuery do objeto
PreparedStatement retorna um objeto que
implementa ResultSet.

 Um objeto ResultSet contém os dados da


consulta.

 Métodos ResultSet permitem que o programa


manipule o resultado da consulta.
PREPAREDSTATEMENTS
 A interface PreparedStatements permite criar
instruções SQL compiladas.

 PreparedStatements podem especificar


parâmetros, o que os torna mais flexíveis do que
Statements.

 Permitem realizar a mesma consulta


repetidamente com diferentes valores de
parâmetros.
PREPAREDSTATEMENTS
 Exemplo:

 Os pontos de interrogação são espaços reservados


para valores que serão passados como parte da
consulta ao banco de dados.
PREPAREDSTATEMENTS
 Especificar valores de parâmetro utilizando
métodos set da interface PreparedStatement.

 Primeiro argumento: número do parâmetro


configurado.

 Segundo argumento: valor do parâmetro.


PREPAREDSTATEMENTS
 Má prática: Statement

 Um Statement simplesmente executa uma


cláusula SQL no método execute.

 Um PreparedStatement é mais rápido e deixa seu


código muito mais limpo.
DAO – DATA ACCESS OBJECT
 Padrões de Projeto (Design Patterns)

 Alguns problemas aparecem com tanta frequência


que as pessoas desenvolvem uma solução “padrão”
para eles.

 Essa solução padrão tem o nome de Design Pattern


(Padrão de Projeto).

 A nossa ConnectionFactory implementa o design


pattern Factory que prega o encapsulamento da
construção (fabricação) de objetos complexos.
DAO – DATA ACCESS OBJECT
 Colocar código SQL nas classes de lógica da
aplicação
 Deselegante
 Inviável para manter o código

 A ideia é remover o código de acesso ao banco de


dados de suas classes de lógica e colocá-lo em
uma classe responsável pelo acesso aos dados.
DAO – DATA ACCESS OBJECT
 Considere a seguinte classe de conexão:
DAO – DATA ACCESS OBJECT
 Considere a classe Contato a seguir:
DAO – DATA ACCESS OBJECT
 Classe ContatoDAO:

 Continua...
DAO – DATA ACCESS OBJECT
 Classe ContatoDAO:
DAO – DATA ACCESS OBJECT
 Classe de teste:
DAO – DATA ACCESS OBJECT
 Através de uma única classe seremos capazes de
acessar o banco de dados.

 A ideia é isolar todo o acesso a banco em classes


bem simples.

 Objetos dessas classes são responsáveis por


acessar os dados (DAO – Data Access
Object).
REFERÊNCIA
 DEITEL, H.M; Java Como Programar. Ed.
Pearson, 8ª ed, 2010.

 Apostilas Caelum fj-21. Disponível em:


http://www.caelum.com.br/

Você também pode gostar