Você está na página 1de 13

PROGRAMAÇÃO ORIENTADA A

OBJETOS

Prof: Pedro Felipe (pedro@cotemig.com.br)

Cotemig – 1º sem/2011
CONEXÃO COM BANCO DE DADOS
 A integração entre uma aplicação e um Sistema
de Gerenciamento de Banco de Dados (SGBD) é
algo comum a muitas linguagens de programação
e é um recurso bastante utilizado.

 Geralmente essa integração ocorre através da


utilização de arquitetura Cliente/Servidor.

 Os componentes básicos de uma arquitetura


Cliente/Servidor são uma parte cliente e outra
parte servidor, conectados por uma rede local.
INTRODUÇÃO

 O SGBD é responsável pelas atividades


diretamente relacionadas aos dados que ele
contém, como segurança, integridade, otimização,
recuperação e atualização dos dados, entre
outras.

 Um SGBD pode ser acessado por um software


cliente, utilizando SQL .
OPEN DATABASE CONNECTIVITY (ODBC)
 A ODBC é uma API que permite aos programas
em C fazer chamadas no servidor SQL e receber
seus resultados.

 Oferece independência ao programador, umas vez


que não é necessário conhecer protocolos
específicos de comunicação dos bancos de dados.

 Caso o fornecedor do banco de dados não tenha


disponibilizado um driver em Java, será
necessário utilizar o ODBC, pois existem drivers
de ODBC para a maioria dos bancos.
JAVA DATABASE CONNECTIVITY (JDBC)

 O papel do JDBC é criar suporte para utilização do


SQL padrão em Java.

 O fabricante do banco fornece seu driver. Para a


disciplina foi disponibilizado o driver do Oracle 11g
para Java 6.

 O driver é um aplicativo responsável em processar


os comandos e receber seus resultados.

 O programador precisa saber apenas SQL e as


rotinas de Java para executar comandos SQL a
partir do JDBC.
ARQUITETURA JDBC
ACESSO AO BANCO DE DADOS
 Primeiro importar o driver para o projeto. No NetBeans
basta clicar com o botão direito no projeto, ir em
propriedades -> biblioteca, adicionar JAR.

 E importar as bibliotecas nas classes que acessam o banco:


import java.sql.*;

 Inserir o comando na classe:


Class.forName("oracle.jdbc.driver.OracleDriver");

Este comando registrará essa classe como um driver JDBC, avisando


o java.sql.DriverManager, pelo método registerDriver.
CRIAR CONNECTION
Ou podemos registrar um driver JDBC, com a
seguinte sintaxe:
DriverManager.registerDriver(new
Oracle.jdbc.driver.OracleDriver());

 Agora já podemos iniciar uma conexão com o


banco de dados. O primeiro parâmetro é a url do
banco, o segundo o usuário e o terceiro a senha.

Connection conn =
DriverManager.getConnection("jdbc:oracle:
thin:@127.0.0.1:1521:XE","teste","teste");
STATEMENT
 JDBC fornece um método para enviar instruções de
atualização.

 O Objeto Statement, que é fornecido pelo


objeto Connection, provê um método executeQuery().

 Para executá-lo, é preciso obter antes um


objeto Statement, através de um objeto Connection já
instanciado.

Statement stmt = conn.createStatement();


RESULTSET
 O método Connection.createStatement() retorna
um objeto java.sql.Statement, que representa
uma query ou comando.

 Utilizando o Statement.executeQuery(),
recebemos um java.sql.ResultSet com o resultado.
Caso nosso comando não devolva nenhum dado
(insert, update...) utilizamos
o Statement.executeUpdate()

ResultSet rs = stmt.executeQuery("SELECT c
oluna FROM tabela WHERE condicoes");
RECEBENDO O RESULTADO DO BD

 O java.sql.ResultSet possui uma série de métodos


para obter colunas de diversos tipos.

 ResultSet possui um método que pode ser


utilizado para obter linha a linha os resultados
(next()). Os resultados de uma linha podem ser
recuperados com um dos métodos get.
RECEBENDO O RESULTADO DO BD

 Ex:

while (rs.next()) {
String coluna1 = rs.getString("coluna1");
int coluna2 = rs.getInt("coluna2");
Date coluna3 = rs.getDate("coluna3");
}
NÃO ESQUEÇA DE TRATAR AS EXCEÇÕES E
FECHAR CONEXÕES ABERTAS...

 Deve-se sempre circundar as instruções SQL com


try-catch(); Além de sempre fechar os statements
e quando a conexão não for utilizada mais,
finalizar a connection.

 EX:
 } catch(SQLException e){
System.out.println("erro conectar ao BD: " + e.getMessage());

} finally { //Força o fechamento do statement


try {
// fecha o stmt
if(stmt != null) stmt.close();
} catch (SQLException e){
System.out.println("erro ao tentar fechar o stmt: " +
e.getMessage());
}
}

Você também pode gostar