aplicaÇÕes de linguagem de programaÇÃo orientada a objetos acesso a banco de dados com o jdbc...

Post on 17-Apr-2015

134 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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.

Aplicação BDInterface JDBCImplementação 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.

Aplicação BDInterface JDBCImplementação JDBC PostgreSQL

DriverManager.getConnection(“jdbc:postgresql://localhost/teste”);

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/

top related