aplicaÇÕes de linguagem de programaÇÃo orientada a objetos acesso a banco de dados com o jdbc...
TRANSCRIPT
![Page 1: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/1.jpg)
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS
ACESSO A BANCO DE DADOS COM O JDBC
Prof. Thiago Pereira Rique
http://thiagorique.wordpress.com/
![Page 2: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/2.jpg)
AGENDA
Introdução A conexão em Java Manipulando bancos de dados com o JDBC PreparedStatements DAO – Data Access Object
![Page 3: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/3.jpg)
INTRODUÇÃO
Banco de dados
Sistema de Gerenciamento de Banco de Dados (SGBD)
Linguagem SQL
Java Database Connectivity (JDBC) API
![Page 4: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/4.jpg)
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.
Aplicação BDInterface JDBCImplementação JDBC. Qual?
![Page 5: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/5.jpg)
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.
![Page 6: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/6.jpg)
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.
Aplicação BDInterface JDBCImplementação JDBC PostgreSQL
DriverManager.getConnection(“jdbc:postgresql://localhost/teste”);
![Page 7: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/7.jpg)
MANIPULANDO BANCOS DE DADOS COM O JDBC
Criando uma classe de conexão (1)
Continua...
![Page 8: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/8.jpg)
MANIPULANDO BANCOS DE DADOS COM O JDBC
Criando uma classe de conexão (1)
![Page 9: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/9.jpg)
MANIPULANDO BANCOS DE DADOS COM O JDBC
Criando uma classe de conexão (2)
![Page 10: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/10.jpg)
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
![Page 11: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/11.jpg)
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.
![Page 12: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/12.jpg)
MANIPULANDO BANCOS DE DADOS COM O JDBC
Consultando um banco de dados
Continua...
![Page 13: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/13.jpg)
MANIPULANDO BANCOS DE DADOS COM O JDBC
Consultando um banco de dados
Continua...
![Page 14: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/14.jpg)
MANIPULANDO BANCOS DE DADOS COM O JDBC
Consultando um banco de dados
Continua...
![Page 15: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/15.jpg)
MANIPULANDO BANCOS DE DADOS COM O JDBC
Consultando um banco de dados
Continua...
![Page 16: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/16.jpg)
MANIPULANDO BANCOS DE DADOS COM O JDBC
Consultando um banco de dados
Continua...
![Page 17: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/17.jpg)
MANIPULANDO BANCOS DE DADOS COM O JDBC
Consultando um banco de dados
![Page 18: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/18.jpg)
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.
![Page 19: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/19.jpg)
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.
![Page 20: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/20.jpg)
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.
![Page 21: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/21.jpg)
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.
![Page 22: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/22.jpg)
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.
![Page 23: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/23.jpg)
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.
![Page 24: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/24.jpg)
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.
![Page 25: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/25.jpg)
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.
![Page 26: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/26.jpg)
DAO – DATA ACCESS OBJECT
Considere a seguinte classe de conexão:
![Page 27: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/27.jpg)
DAO – DATA ACCESS OBJECT
Considere a classe Contato a seguir:
![Page 28: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/28.jpg)
DAO – DATA ACCESS OBJECT
Classe ContatoDAO:
Continua...
![Page 29: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/29.jpg)
DAO – DATA ACCESS OBJECT
Classe ContatoDAO:
![Page 30: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/30.jpg)
DAO – DATA ACCESS OBJECT
Classe de teste:
![Page 31: 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/31.jpg)
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).
![Page 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](https://reader036.vdocuments.pub/reader036/viewer/2022062318/552fc103497959413d8bedee/html5/thumbnails/32.jpg)
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/