Vous êtes sur la page 1sur 8

JDBC

Prsentation!!!
JDBC (Java Data Base Connectivity) permet l'accs des bases de
donnes avec le langage SQL, depuis un programme en Java
Il est fourni par le paquetage java.sql
LAPI JDBC est indpendante des SGBDs

Contenu de java.sql
Ce paquetage contient un grand nombre d'interfaces et quelques classes
Les interfaces constituent linterface de programmation
JDBC ne fournit pas les classes qui implantent les interfaces

Drivers
Pour travailler avec un SGBD il faut disposer de classes qui implantent les
interfaces de JDBC
Un ensemble de telles classes est dsign sous le nom de driver JDBC
Les drivers dpendent du SGBD auquel ils permettent d'accder
Tous les SGBD importants du march ont un (et mme plusieurs) driver
JDBC, fourni par l'diteur du SGBD ou par des diteurs de logiciels
indpendants

JDBC

JDBC
Interfaces principales
Driver : renvoie une instance de Connection
Connection : connexion une base
Statement : ordre SQL
PreparedStatement : ordre SQL paramtr
CallableStatement : procdure stocke sur le SGBD
ResultSet : lignes rcupres par un ordre SELECT

Classes principales
DriverManager : gre les drivers, lance les connexions aux bases
Date : date SQL
Time : heures, minutes, secondes SQL
TimeStamp : date et heure, avec une prcision la microseconde
Types : constantes pour dsigner les types SQL (pour les conversions avec

les types Java)

JDBC

Dans les classes qui utilisent JDBC


Importer le paquetage java.sql

import java.sql.*;
Charger en mmoire la classe du driver avant d'utiliser JDBC

Class.forName("oracle.jdbc.OracleDriver");

tapes :
1. Ouvrir une connexion

(Connection)

(Statement,
PreparedStatement ou CallableStatement)
2. Crer des instructions SQL

3. Lancer l'excution de ces instructions :

>interroger la base (executeQuery())


>ou modifier la base (executeUpdate())
4. Fermer la connexion

(close())

JDBC

Dans les classes qui utilisent JDBC


1.
Connexion:
Class.forName ( com.mysql.jdbc.Driver );
String url= jdbc:mysql://localhost:3306/formation ;
String login= root ,pwd= root ;
Connection con=DriverManager.getConnection(url,login,pwd);
Statement st=con.createStatement();
2.
Traitement:
st.executeUpdate(insert into table values(val1,val2));
ResultSet res=st.executeQuery( select * from table );
3.
Fermeture:
st.close();
con.close();

JDBC

Dans les classes qui utilisent JDBC (2)


ResultSet:
ResultSet res=st.executeQuery( select * from table );
col1(int)

xxx
xxx
xxx

col2(String)

xxx
xxx
xxx

Avancement sur les lignes:


res.next() avance sur les lignes ,et renvoi true sil yas encore des lignes,
false sinon.
Rcupration dune colonne:
res.getInt(1) et res.getInt(col1 ):retourne la valeur de 1er col de la ligne
courante .
res.getString(2) et res.getString(col2 ):retourne la valeur de 2em col de la ligne
courante .

JDBC
Cration d'une requte paramtre
PreparedStatement pstmt =conn.prepareStatement("UPDATE emp SET sal =?"+
" WHERE nome = ?");

Les "?" indiquent les emplacements des paramtres


Cette requte pourra tre excutes avec plusieurs couples de valeurs :
(2500, DUPOND), (3000, DURAND), etc.

Requte paramtre Valeurs des paramtres


Les valeurs des paramtres sont donnes par les mthodes
setXXX(n, valeur)

On choisit la mthode setXXX suivant le type Java de la valeur que l'on veut
mettre dans la base de donnes
C'est au programmeur de passer une valeur Java du bon type la mthode
setXXX

Le driver JDBC fait la conversion dans le bon format pour le SGBD

JDBC

Vous aimerez peut-être aussi