1 acetato por página

Propaganda
Apresentac~ao
Java { conceitos Basicos
Java { topicos especcos
JDBC
- Java Data Base Connectivity
Rui Camacho
Complementos de Programac~ao e Algoritmos { LEIC
Apresentac~ao
Java { conceitos Basicos
Java { topicos especcos
JDBC
API para Bases de Dados relacionais. Permite o desenvolvimento
de aplicaco~es que interagem com BD relacionais de modo uniforme
e independente dos diferentes SGBD. Perguntas SQL s~ao passadas
como argumentos a metodos Java da API JDBC.
Rui Camacho
Complementos de Programac~ao e Algoritmos { LEIC
Apresentac~ao
Java { conceitos Basicos
Java { topicos especcos
JDBC { caracter
sticas
I
E um conjunto de Interfaces Java que s~
ao implementadas nas
classes dos
I
disponibilizados por cada vendedor
JDBC e uma API ao n
vel do SQL
SQL
I
drivers
queries passadas como par^ametros/objectos recebidos na resposta
JDBC capitaliza em experi^
encias anterioes
disp~
oe de uma ponte para Open DataBase Connectivity (ODBC)
baseado na experi^
encia de Call Level Interface (SQL CLI)
I
I
JDBC e simples
A ponte para ODBC permite interagir com todas as BD que
suportem ODBC
Rui Camacho
Complementos de Programac~ao e Algoritmos { LEIC
Apresentac~ao
Java { conceitos Basicos
Java { topicos especcos
JDBC - arquitectura
de: \Database Programming with JDBC and Java", George Reese
Rui Camacho
Complementos de Programac~ao e Algoritmos { LEIC
Apresentac~ao
Java { conceitos Basicos
Java { topicos especcos
JDBC - API
de: \Database Programming with JDBC and Java", George Reese
Rui Camacho
Complementos de Programac~ao e Algoritmos { LEIC
Apresentac~ao
Java { conceitos Basicos
Java { topicos especcos
JDBC - Drivers
de: \Database Programming with JDBC and Java", George Reese
Rui Camacho
Complementos de Programac~ao e Algoritmos { LEIC
Apresentac~ao
Java { conceitos Basicos
Java { topicos especcos
JDBC - utiliza
c~
ao de
drivers
de: \Database Programming with JDBC and Java", George Reese
Rui Camacho
Complementos de Programac~ao e Algoritmos { LEIC
Apresentac~ao
Java { conceitos Basicos
Java { topicos especcos
JDBC - utiliza
c~
ao de
drivers
de \Advanced Java Networking", Prashant Sridharan
Rui Camacho
Complementos de Programac~ao e Algoritmos { LEIC
Apresentac~ao
Java { conceitos Basicos
Java { topicos especcos
JDBC -
drivers
Vendor
Name
JDBC
API
ver.
Drv
Type
Easysoft
1.x
3
Easysoft
Ltd
2.x
3
IDS Software
2.x
jxDBCon
2.x
.........
1,2,3,4
4
2
4
DBMS(s)
InterBase
MS Access
MS SQL Server
ODBC
Oracle
PostgreSQL
MS Access
MS SQL
Server
ODBC
Oracle
PostgreSQL
MySQL
PostgreSQL
PostgreSQL
Devel.
2.x
4
PostgreSQL
Group
tabela completa e actualizada em: http://industry.java.sun.com/products/jdbc/drivers
Rui Camacho
Complementos de Programac~ao e Algoritmos { LEIC
Apresentac~ao
Java { conceitos Basicos
Java { topicos especcos
JDBC |
query
envolve:
I
I
I
I
Ligac~ao a Base de Dados
Envio do comando SQL
Recolha do resultado (objecto java.sql.ResultSet)
Apanhar as SQLException em qq probema entre o JDBC e
um qq SGBD
Rui Camacho
Complementos de Programac~ao e Algoritmos { LEIC
Apresentac~ao
Java { conceitos Basicos
Java { topicos especcos
JDBC |
I
ligac~
ao
registar um
I
driver
no
DriverManager
new
chamada expl
cita a
do
driver
para carregar a nova implementa
c~
ao
I
usar a propriedade jdbc.drivers que carrega automaticamente
I
carregar a classe usando
as classes nesta lista
Class.forName(driver).newInstance();
que cria uma nova inst^
ancia da classe
I
Connection ref = DriverManager.getConnection(url, uid, pass);
sintaxe do url:
nomeDoDriver//nomeDaMaquina/nomeDaBD
jdbc:
ex: DriverManager.getConnection(\jdbc:postgresql//deec02ws16.fe.up.pt/bd1", \iweb","...");
Rui Camacho
Complementos de Programac~ao e Algoritmos { LEIC
Apresentac~ao
Java { conceitos Basicos
Java { topicos especcos
Classes JDBC de acesso a BD
|
java.sql.Statement
I
|
m
etodo ResultSet executeQuery(String SQLquery)
chamadas SQl que devolvem daddos da BD
I
m
etodo int executeUpdate(String SQL)
chamadas SQl de actualiza
c~
ao. Devolve n
umero de linhas afectadas
I
m
etodo boolean execute(String SQL)
para quando n~
ao se sabe se o SQL e uma
query
ou
update
usar getResultSet() para aceder aos dados devolvidos
Rui Camacho
Complementos de Programac~ao e Algoritmos { LEIC
Apresentac~ao
Java { conceitos Basicos
Java { topicos especcos
Classes JDBC de acesso a BD
|
java.sql.ResultSet
|
Um ResultSet e um conjunto de linhas resultado de uma query a
BD. As linhas e colunas s~ao acedidas atraves de metodos utilitarios.
I
forma geral dos m
etodos de acesso a colunas:
tipo get
Tipo
(intjString)
em que o argumento e o n
umero da coluna ou o seu nome
ex: resultset.getSTring(1);
I
boolean resultset.next(); referencia a pr
oxima linha caso exista
Rui Camacho
Complementos de Programac~ao e Algoritmos { LEIC
Apresentac~ao
Java { conceitos Basicos
Java { topicos especcos
Interroga
c~
ao a uma BD PostgreSQL
// BD com tabela cotacao(hora, empresa, cotacao)
import java.sql.*;
public class Ligacao f
public static void main(String args[]) f
String url = "jdbc:postgresql://deec02ws16.fe.up.pt/bd1";
String driver = "org.postgresql.Driver";
Connection con = null;
try f
Class.forName(driver).newInstance();
g
catch( Exception e ) f
System.out.println("Failed to load PostgreSQL driver.");
return;
g
Rui Camacho
Complementos de Programac~ao e Algoritmos { LEIC
Apresentac~ao
Java { conceitos Basicos
Java { topicos especcos
Interroga
c~
ao a uma BD PostgreSQL
try f
con = DriverManager.getConnection(url, "iweb", "...");
Statement select = con.createStatement();
ResultSet result = select.executeQuery(
"SELECT hora,empresa, cotacao FROM cotacao");
System.out.println("Resultado:");
while(result.next()) f // processa uma linha de cada vez
String emrpesa = result.getString(2);
int cotacao = result.getInt(3);
System.out.println("empresa = " + empresa+"nncotacao = " + cotacao);
g
g
catch(Exception e)fe.printStackTrace(); g
nally f
if(con != null)
try f con.close(); g
catch( Exception e ) f e.printStackTrace(); g
g
g
g
Rui Camacho
Complementos de Programac~ao e Algoritmos { LEIC
Download