![Page 1: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/1.jpg)
Acesso a Base de Dados
JDBC
Trabalho Realizado por:
Diogo Reis, 1010481
![Page 2: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/2.jpg)
INTRODUÇÃO
JDBC (Java DataBase Conectivity) é uma API Java que fornece classes e interfaces para acesso e tratamento de dados.
Camada de abstracção que permite a um programa Java utilizar uma interface padrão para acesso a uma base de dados relacional através da linguagem SQL.
![Page 3: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/3.jpg)
INTRODUÇÃO
• A API JDBC cria como padrão:
– O mecanismo de como deve ser feita a ligação à Base de Dados– Abordagem para criar consulta
– Resultado da consulta
• A API JDBC não cria como padrão:– Sintaxe SQL
• API localizada no pacote java.sql
![Page 4: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/4.jpg)
INTRODUÇÃO
JDBC consiste em duas partes:
– API JDBC, puramente escrita em Java.
– Gestor de Driver JDBC, o qual comunica com os drivers dos vendedores da BD.
![Page 5: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/5.jpg)
JDBC DRIVERS
São o coração do JDBC. Há quatro tipos de drivers:
– TIPO 1 – JDBC-ODBC– TIPO 2 – JDBC – JAVA PARTIAL DRIVER– TIPO 3 – PURE-JAVA JDBC DRIVER– TIPO 4 – PURE-JAVA JDBC DRIVER
![Page 6: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/6.jpg)
TIPOS DE DRIVERS
TIPO 1– Utilizado para fazer a ligação (“ponte”) entre o
JDBC e um driver ODBC.
TIPO 2– Converte chamadas JDBC em chamadas
internas da API do cliente da base de dados.
![Page 7: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/7.jpg)
TIPO 3– A API do JDBC acede a uma aplicação
intermediária (middleware) encarregada de traduzir chamadas JDBC e enviá-las à base de dados.
TIPO 4– Este driver converte as chamadas JDBC
directamente para o protocolo nativo do SGBD.
![Page 8: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/8.jpg)
ODBC
ODBC (Open Database Connectivity) é uma API construída em C para aceder a base de dados.
ODBC não é uma API independente de plataforma, sendo patrocinado pela Microsoft.
A API JDBC oferece um driver específico para o padrão ODBC.
![Page 9: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/9.jpg)
VANTAGENS JDBC
Um programa Java utiliza uma API JDBC única que é independente da base de dados ou driver que estiver a utilizar.
Os drivers para conexão e acesso às principais base de dados existentes são fornecidos pelos seus fabricantes.
O programador só precisa de saber utilizar o driver adequado e a API JDBC.
![Page 10: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/10.jpg)
PRINCIPAIS CLASSES E INTERFACES JDBC
DriverManager Connection Statement PreparedStatement CallableStatement ResultSet SQLException
![Page 11: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/11.jpg)
DRIVERMANAGER
Utilizado para estabelecer uma conexão entre o driver apropriado e a Base de Dados.
Métodos public static Connection getConnection (String url)
throws SQLException
– Inicia uma conexão à base de dados e retorna um objecto Connection.
![Page 12: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/12.jpg)
CONNECTION
Representa uma conexão com uma BD específica
– comandos SQL são executados e os resultados são retornados– aspectos das transacções são tratados (commit,etc)– descrição da BD pode ser obtida (metadados)
• Métodos public Statement createStatement() throws SQLException
– - Cria um objeto com uma instrução SQL para execução futura.
![Page 13: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/13.jpg)
CONNECTION
Métodos
– public void close() throws SQLException- Fecha a conexão actual.
– public void commit() throws SQLException- Confirma a transacção.
– public void rollback() throws SQLException- Cancela a transacção.
![Page 14: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/14.jpg)
STATEMENT
Utilizado para enviar comandos SQL simples • Métodos
public ResultSet executeQuery (String sql) throws SQLException
- Executa a consulta SQL passada em SQL e retorna o ResultSet com o resultado da consulta.
public int executeQuery(String sql) throws SQLException
- Executa a instrução INSERT, UPDATE ou DELETE especificada em SQL.
public void cancel() throws SQLException
- Cancela uma instrução SQL que esteja a ser executada.
![Page 15: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/15.jpg)
PREPAREDSTATEMENT
Utilizado para enviar comandos SQL que recebam um ou mais parâmetros como entrada
• Métodos
public ResultSet executeQuery (String sql) throws SQLException- Executa a consulta SQL passada em SQL e retorna o ResultSet com o resultado da consulta.
public int executeUpdate() throws SQLException– Usado para efectuar actualizações numa base de dados como a criação de tabelas (CREATE), alterações (UPDATE) ou exclusão (DELETE) de registros, etc.
public setInt(int indice, int valor) public setBoolean(int indice, boolean valor)– Usado para configurar os parâmetros dum código SQL.
![Page 16: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/16.jpg)
CALLABLESTATEMENT
Utilizado para chamar stored procedures na Base de Dados.
• Métodos– public CallableStatement prepareCall (String
storedProcedure) throws SQLException- Executa a stored procedured armazenada na Base de
Dados.
![Page 17: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/17.jpg)
SETE PASSOS BÁSICOS PARA USAR O JDBC
1. Carregar o driver
2. Definir a URL de Conexão
3. Estabelecer a Conexão
4. Criar um objecto Statement
5. Executar a Consulta
6. Processar os Resultados
7. Fechar a Conexão
![Page 18: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/18.jpg)
SETE PASSOS BÁSICOS PARA USAR O JDBC
1. Carregar o driver try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver "); } catch(ClassNotFoundException e) {...} 2. Definir a URL de Conexão
String odbcURL = "jdbc:odbc:Java"; 3. Estabelecer a conexão
String user= “abc”;String password = “secret”; Connection connection=DriverManager.getConnection(odbcURL,user,password);
4. Criar um objecto StatementStatement statement =connection.createStatement();
5. Executar a Consulta:String query = “SELECT col1, col2, col3 FROM sometable”;ResultSet resultSet = statement.executeQuery(query);
![Page 19: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/19.jpg)
SETE PASSOS BÁSICOS PARA USAR O JDBC
6. Processar os Resultadoswhile(resultSet.next()) { System.out.println(resultSet.getString(1)+ “” + resultSet.getString(2)+ “” + resultSet.getString(3));
– A primeira coluna tem índice 1, não 0;
7. Fechar a Conexãoconnection.close();
– - Abrir e fechar conexão é um recurso que consome muito da máquina;
![Page 20: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/20.jpg)
EXEMPLO
![Page 21: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/21.jpg)
EXEMPLO
Passos para configurar ODBC no Windows: Seleccionar Painel de Controlo –
Ferramentas Administrativas Seleccionar “Fonte de Dados – ODBC”
![Page 22: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/22.jpg)
EXEMPLO
Criar um DNS através da fonte de dados ODBC
Adicionar - Microsoft Acess Driver – Concluir
![Page 23: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/23.jpg)
EXEMPLO
• Nome da ligação ODBC - JavaJdbc
• Seleccionar BD - ...\jdbc.mdb
![Page 24: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/24.jpg)
APLICAÇÃO JAVA APLICAÇÃO JAVA - JDBC
![Page 25: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/25.jpg)
APLICAÇÃO JAVA APLICAÇÃO JAVA - JDBC
![Page 26: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/26.jpg)
APLICAÇÃO JAVA APLICAÇÃO JAVA - JDBC
![Page 27: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/27.jpg)
APLICAÇÃO JAVA APLICAÇÃO JAVA - JDBC
Resultado
![Page 28: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/28.jpg)
Conclusão
Esta apresentação serve principalmente para ficarmos com uma pequena ideia de qual a finalidade e meios de implementação de uma ligação a Base de Dados em Java através da JDBC.
De ter em atenção que nesta apresentação foram especificados, como devem imaginar, apenas alguns dos métodos e interfaces da JDBC.
![Page 29: Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481](https://reader036.vdocuments.pub/reader036/viewer/2022062404/552fc12c497959413d8d1d4a/html5/thumbnails/29.jpg)
Bibliografia e Links úteis
http://java.sun.com/products/jdbc/
http://www.imasters.com.br/artigo.php?cn=1020&cc=89
http://jdbcmanager.sourceforge.net/
http://www.mhavila.com.br/link/prog/java/java-api.html
http://www.inf.furb.br/~jomi/java/pdf/jdbc.pdf
http://java.sun.com/products/jdbc/learning.html
http://www.dimap.ufrn.br/~jorge/MySW/jdbc/threetier/Slides/index.htm