Upload
buithuan
View
218
Download
1
Embed Size (px)
Citation preview
INTRODUÇÃO AO JDBC – AULA6
PROGRAMAÇÃO ORIENTADA A OBJETOS
Conteúdo Programático desta aula
• Compreender o funcionamento das
ferramentas de mapeamento de acesso aos
bancos de dados
• Utilizar componentes para acesso a dados
em banco de dados.
INTRODUÇÃO AO JDBC – AULA6
PROGRAMAÇÃO ORIENTADA A OBJETOS
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.
INTRODUÇÃO AO JDBC – AULA6
PROGRAMAÇÃO ORIENTADA A OBJETOS
A História do JDBC
Ano Versão JSR JDK
2006 JDBC 4.0 JSR 221 Java SE 6
2001 JDBC 3.0 JSR 54 JDK 1.4
1999 JDBC 2.1 JDK 1.2
1997 JDBC 1.2 JDK 1.1
1996 JDBC 1.0
INTRODUÇÃO AO JDBC – AULA6
PROGRAMAÇÃO ORIENTADA A OBJETOS
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
INTRODUÇÃO AO JDBC – AULA6
PROGRAMAÇÃO ORIENTADA A OBJETOS
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
INTRODUÇÃO AO JDBC – AULA6
PROGRAMAÇÃO ORIENTADA A OBJETOS
A Responsabilidade do JDBC
•Estabelecer conexão com o SGBD
•Enviar comandos SQL
•Receber os resultados
•Processar os resultados
INTRODUÇÃO AO JDBC – AULA6
PROGRAMAÇÃO ORIENTADA A OBJETOS
Como o JDBC Funciona
•Carregar os drivers
JDBC
•Obter uma conexão
•Criar os comandos SQL
•Enviar comandos SQL
•Receber os resultados
•Processar os
resultados
INTRODUÇÃO AO JDBC – AULA6
PROGRAMAÇÃO ORIENTADA A OBJETOS
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.
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
INTRODUÇÃO AO JDBC – AULA6
PROGRAMAÇÃO ORIENTADA A OBJETOS
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.
INTRODUÇÃO AO JDBC – AULA6
PROGRAMAÇÃO ORIENTADA A OBJETOS
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)
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)
INTRODUÇÃO AO JDBC – AULA6
PROGRAMAÇÃO ORIENTADA A OBJETOS
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);
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);
O código acima precisa estar circundado por um try and catch,
ou ter um throws no método.
INTRODUÇÃO AO JDBC – AULA6
PROGRAMAÇÃO ORIENTADA A OBJETOS
Criando um Banco de Dados e Realizando uma Conexão
Fazer download de um SGBC. Sugiro o SGBD PostgreSQL.
Entre na página do programa
Clique em download
Com o download feito, faça o download do JDBC para o SGBD. Escolha o jdbc4
Instale o PostgreSQL.
Na instalação, ele pedirá uma senha para o super-usuário. Coloque
postgres, de preferência.
Execute o SGBD através do pgAdminIII
O servidor do banco de dados já deverá estar executando, na porta 5432.
Vamos utilizar o administrador para criar o banco de dados.
INTRODUÇÃO AO JDBC – AULA6
PROGRAMAÇÃO ORIENTADA A OBJETOS
Criando o primeiro programa conectando no banco
Não esqueça de instalar o JDBC na pasta Bibliotecas
INTRODUÇÃO AO JDBC – AULA6
PROGRAMAÇÃO ORIENTADA A OBJETOS
Executando o programa!
Não esqueça de instalar o JDBC na pasta Bibliotecas