Prévia do material em texto
PROGRAMAÇÃO ORIENTADA A OBJETOS
Oswaldo Borges Peres
Aula 6 - Introdução ao JDBC
JDBC
Java Database Connectivity define um conjunto de classes e interfaces para escrever programas ou sistemas em Java que utilizem Banco de Dados. Estas classes e interfaces efetuam as conexões entre a aplicação e o Sistema Gerenciador de Banco de Dados (SGBD).
Ao utilizar o JDBC, podemos enviar comandos SQL ou PL/SQL para quase todos os bancos de dados relacionais.
2
Principais Características
Disponibiliza ao programador de aplicações Java abrir conexões em um SGBD, consultando ou modificando algum dado de um determinado BD, utilizando comandos SQL.
Implementa o isolamento entre a aplicação e os dados, baseado na abordagem da Microsoft para a sua API ODBC.
Características:
Portabilidade
API independente do Banco de Dados utilizado
Permite o desenvolvimento de aplicações independente do banco de dados escolhido
Implementa a Estrutura em Camadas
3
Estrutura de Acesso ao Banco de Dados através do JDBC
Fornece um conjunto de API’s de acesso para executar comandos SQL
É implementado no pacote padrão java.sql, que é fornecido no SDK
Funciona para qualquer tipo de Banco de Dados relacional que seu fabricante disponibilizou o Driver específico
Esta interface foi baseada no X/OPEN SQL / CLI
É independente de API ou da Linguagem proprietária dos fabricantes de SGBD
4
Arquitetura JDBC
5
Aplicação Java
Gerenciador de Drivers JDBC
Ponte JDBC - ODBC
Driver ODBC
SGBD
SGBD
Driver JDBC
A Responsabilidade do JDBC
Estabelecer conexão com o SGBD
Enviar comandos SQL
Receber os resultados
Processar os resultados
6
A Responsabilidade do JDBC
Carregar os drivers JDBC
Obter uma conexão
Criar os comandos SQL
Enviar comandos SQL
Receber os resultados
Processar os resultados
7
A Classe Driver
Para efetuar conexão à um SGBD, é necessário carregar o driver compatível. Estas classes não estão incluídas e precisam ser obtidas com o fabricante do banco de dados.
8
Registrando um Driver
É utilizado o método estático:
Class.forName(<nome_da_classe_driver>);
O nome da classe driver consta na documentação do mesmo.
SGBD
DRIVER
JDBC-ODBC:
sun.jdbc.odbc.JdbcOdbcDriver
mySQL:
com.mysql.jdbc.Driver
PostGresql:
org.postgresql.Driver
Oracle:
oracle.jdbc.driver.OracleDriver
SqlServer:
com.jnetdirect.jsql.JSQLDriver
DB2:
com.ibm.db2.jdbc.app.DB2Driver
Interface JDBC
O JDBC pode ser visto como um conjunto de interfaces cuja implementação deve ser fornecida por fabricantes de SGBD.
Cada fabricante deve fornecer implementações de:
java.sql.Connection
java.sql.Statement
java.sql.PreparedStatement
java.sql.CallableStatement
java.sql.ResultSet
java.sql.Driver
O objetivo é que fique transparente para o programador qual a implementação JDBC está sendo utilizada.
9
Interface JDBC
java.sql.DriverManager
Provê serviços básicos para gerenciar diversos drivers JDBC
java.sql.Connection
Representa uma conexão estabelecida com o BD.
java.sql.Statement
Representa sentenças onde são inseridos os comandos SQL
Permite realizar todo o tratamento das consultas (select) e dos comandos de atualizações (insert, delete, update)
10
Interface JDBC
java.sql.ResultSet
Representa o conjunto de registros resultante de uma consulta.
Permite manipular os resultados
Permite realizar coerção (cast) entre tipos Java e SQL
Exemplo:
tipo no banco DateTime, tipo de retorno String
Colunas de um objeto ResultSet podem ser referenciadas por um número posicional ou pelo nome da coluna do resultado.
ResultSet rs.getString("Endereco") ou
ResultSet rs.getString(3)
11
Conectando em um Banco
12
Abrindo uma Conexão
Ponte ODBC-JDBC:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:db_teste","testeusu","senha");
No MySql:
Class.forName("org.gjt.mm.mysql.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/db_teste“,usuario,senha);
13
O código acima precisa estar circundado por um try and catch, ou ter um throws no método.
Abrindo uma Conexão
No PostgreSQL
Class.forName("org.postgresql.Driver");
Connection conn = DriverManager.getConnection( "jdbc:postgresql:db_teste“,usuario,senha);
No Oracle
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@127.0.0.1:1521:db_teste", usuario,senha);
14
O código acima precisa estar circundado por um try and catch, ou ter um throws no método.
Passo a passo
15
Não esqueça de instalar o JDBC na pasta Bibliotecas
Bibliografia
Java: como programar - 8ª edição
Deitel, Paul J.; Deitel, Harvey M.
16