trabalho teorico de linguagem de programação

29
Acesso a Base de Dados JDBC Trabalho Realizado por: Diogo Reis, 1010481

Upload: carlosveiga

Post on 23-Jun-2015

59 views

Category:

Education


1 download

DESCRIPTION

Acesso a Base de dados

TRANSCRIPT

Page 1: Trabalho teorico de Linguagem de Programação

Acesso a Base de Dados

JDBC

Trabalho Realizado por:

Diogo Reis, 1010481

Page 2: Trabalho teorico de Linguagem de Programação

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: Trabalho teorico de Linguagem de Programação

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: Trabalho teorico de Linguagem de Programação

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: Trabalho teorico de Linguagem de Programação

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: Trabalho teorico de Linguagem de Programação

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: Trabalho teorico de Linguagem de Programação

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: Trabalho teorico de Linguagem de Programação

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: Trabalho teorico de Linguagem de Programação

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: Trabalho teorico de Linguagem de Programação

PRINCIPAIS CLASSES E INTERFACES JDBC

DriverManager Connection Statement PreparedStatement CallableStatement ResultSet SQLException

Page 11: Trabalho teorico de Linguagem de Programação

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: Trabalho teorico de Linguagem de Programação

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: Trabalho teorico de Linguagem de Programação

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: Trabalho teorico de Linguagem de Programação

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: Trabalho teorico de Linguagem de Programação

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: Trabalho teorico de Linguagem de Programação

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: Trabalho teorico de Linguagem de Programação

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: Trabalho teorico de Linguagem de Programação

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: Trabalho teorico de Linguagem de Programação

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: Trabalho teorico de Linguagem de Programação

EXEMPLO

Page 21: Trabalho teorico de Linguagem de Programação

EXEMPLO

Passos para configurar ODBC no Windows: Seleccionar Painel de Controlo –

Ferramentas Administrativas Seleccionar “Fonte de Dados – ODBC”

Page 22: Trabalho teorico de Linguagem de Programação

EXEMPLO

Criar um DNS através da fonte de dados ODBC

Adicionar - Microsoft Acess Driver – Concluir

Page 23: Trabalho teorico de Linguagem de Programação

EXEMPLO

• Nome da ligação ODBC - JavaJdbc

• Seleccionar BD - ...\jdbc.mdb

Page 24: Trabalho teorico de Linguagem de Programação

APLICAÇÃO JAVA APLICAÇÃO JAVA - JDBC

Page 25: Trabalho teorico de Linguagem de Programação

APLICAÇÃO JAVA APLICAÇÃO JAVA - JDBC

Page 26: Trabalho teorico de Linguagem de Programação

APLICAÇÃO JAVA APLICAÇÃO JAVA - JDBC

Page 27: Trabalho teorico de Linguagem de Programação

APLICAÇÃO JAVA APLICAÇÃO JAVA - JDBC

Resultado

Page 28: Trabalho teorico de Linguagem de Programação

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: Trabalho teorico de Linguagem de Programação

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