JDBC Connexion a la bd java - driver jdbc - JAVA DATABASE CONNECTIVITY
JDBC :
ensemble de classes java permettant de se connecter à une base de données et
manipuler ses données.
I-connexion aux bases de données
1- classe Connection.
Permet de se connecter à
une base de données.
Pour se connecter à une
base de données, il faut :
-
charger le pilote correspondant.
-
Désigner l’url (adresse) de la base de données.
-
Préciser le nom utilisateur et le mot de passe.
-
Créer et ouvrir la connexion.
a- charger le pilote :
Syntaxe :
Class.forName(String pilote)
Pilote :
chaîne de caractères désignant le pilote convenable à la BD.
Ex : "sun.jdbc.odbc.JdbcOdbcDriver" à bases ODBC comme Access.
"com.mysql.jdbc.Driver" à Mysql
"Oracle.jdbc.OracleDriver" à Oracle
"com.microsoft.sqlserver.jdbc.SQLServerDriver"
à SqlServer
Exemple:
String pilote=
"sun.jdbc.odbc.JdbcOdbcDriver" ;
try
{
Class.forName(pilote);
System.out.println(“pilote chargé avec succès”);
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null,”Erreur:“ + ex.getMaessage());
}
b- Préciser l’adresse de la BD
String
url;
url="jdbc:odbc:Driver=Microsoft Access Driver (*.mdb); DBQ= GestionDeStock.mdb"; à BD Access
url="jdbc:oracle:thin:@localhost:1521:Nom_base";
à BD Oracle.
url="jdbc:mysql://localhost/Nom_base";
à BD Mysql.
url="jdbc:sqlserver://localhost:1433;databaseName= Nom_base"; à BD SqlServer
c- Nom utilisateur et mot de passe
String login="…….." ;
String login="…….." ;
String pw="……." ;
d- créer et ouvrir la connexion :
DriverManager.getConnection( )
Exemple 1:
Connexion à une BD Access
import
java.sql.* ;
Connection
con ;
String pilote=
"sun.jdbc.odbc.JdbcOdbcDriver" ;
String url="jdbc:odbc:Driver=Microsoft Access
Driver (*.mdb); DBQ=
GestionDeStock.mdb";
String login="";
Strin pw="";
Connection con;
try
{
Class.forName(pilote);
System.out.println("pilote chargé avec
succès");
con= DriverManager.getConnection(url,login,pw);
System.out.println("connexion
établie avec succès");
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null,"Erreur:"
+ ex.getMaessage());}
Exemple 2:
Connexion à une BD MySql
void
connexionMysql()
{ pilote=
"com.mysql.jdbc.Driver";
url="jdbc:mysql://localhost/gestion";
login="root";
pw="";
try
{ Class.forName(pilote);
System.out.println("pilote chargé avec succès");
con=
DriverManager.getConnection(url,login,pw);
System.out.println("connexion
établie avec succès");
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null,"Erreur:" + ex.getMessage());
}
}
Exemple 3:
Connexion à une BD SQLServer
String
pilote="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url;
url="jdbc:sqlserver://localhost:1433;databaseName=Gestion";
String login="gueroihi";
String pw="123456";
try{
Class.forName(pilote);
con =
DriverManager.getConnection( url, login, pw);
JOptionPane.showMessageDialog(null,"Connexion réussie");
}
catch(ClassNotFoundException e)
{
JOptionPane.showMessageDialog(null,"--Pbm en chargeant le driver
JDBC SQL SERVER--" + e.getMessage());
e.printStackTrace();
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null,"--Pbm de
connexion--"+e.getMessage());
}
Exemple 4:
Connexion à une BD Oracle
Connexion à une BD Oracle
String pilote="oracle.jdbc.OracleDriver";
String
url="jdbc:oracle:thin:@localhost:1521:Air";
String login="gueroihi";
String pw="123456";
try{
Class.forName(pilote);
con =
DriverManager.getConnection( url, login, pw);
JOptionPane.showMessageDialog(null,"Connexion
réussie");
}
catch(ClassNotFoundException e)
{
JOptionPane.showMessageDialog(null,"--Pbm en chargeant le driver
JDBC Oracle--" + e.getMessage());
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null,"--Pbm de
connexion--"+e.getMessage());
}
II-
Créer un espace de description de requête.
Classes :
· Statement : Permet d’effectuer
des requêtes simples
· PreparedStatement : Permet d’effectuer
des requêtes pré compilées ; ces requêtes peuvent passer de paramètres.
· CallableStatement : Permet de faire
appel à des procédures stockées.
1- classe Statement :
a- création d’une commande :
Syntaxe :
Statement objetStatement ;
objetStatement = objetConnection.CreateStatement([type],[Maj]) ;
Type
|
Description
|
ResultSet.TYPE_FORWARD_ONLY
|
ResultSet en avant
seulement
|
ResultSet.TYPE_SCROLL_INSENSITIVE
|
Parcourir le
ResultSet dans n’importe quel sens, les modifications effectuées par les
autres utilisateurs ne sont pas répercutées
|
ResultSet.TYPE_SCROLL_SENSITIVE
|
Parcourir le
ResultSet dans n’importe quel sens, et permet de voir les modifications effectuées par les
autres utilisateurs.
|
Maj
|
Description
|
ResultSet.CONCUR_READ_ONLY
|
ResultSet en Lecture
seule
|
ResultSet.CONCUR_UPDATABLE
|
Mise à jour
possible du ResultSet
|
Exemples :
Exemlpe1.
void listePilotes()
{
Statement
stmt;
String
requete="select * from pilote";
ResultSet
rst;
int id;
String
nom, prenom,ville;
try
{
stmt=con.createStatement();
rst =
stmt.executeQuery(requete);
while(rst.next())
{
id=rst.getInt(1);
nom=rst.getString("NomPilote");
prenom=rst.getString("PrenomPilote");
ville=rst.getString("ville");
System.out.println(id+"\t"+nom+"\t"+prenom+"\t"+ville);
}
rst.close();
}
catch(SQLException ex)
{
System.out.println(ex.getMessage());}
}
Exemple2:
void insererPilote()
{
Statement
stmt;
String
requete;
String nom,
prenom, ville;
nom=JOptionPane.showInputDialog("Nom du
pilote :");
prenom=JOptionPane.showInputDialog("Prénom
du pilote :");
ville=JOptionPane.showInputDialog("Ville
du pilote :");
requete="insert into pilote
(nompilote,prenompilote,ville) values ('" + nom + "','" + prenom
+"','" + ville + "')";
//JOptionPane.showMessageDialog(null, requete);
int
type=ResultSet.TYPE_SCROLL_SENSITIVE;
int
Maj=ResultSet.CONCUR_UPDATABLE;
try
{
stmt=con.createStatement(type,Maj);
// ou
stmt=con.createStatement(1005,1008);
stmt.executeUpdate(requete);
JOptionPane.showMessageDialog(null, "Pilote ajouté");
}
catch(SQLException ex)
{JOptionPane.showMessageDialog(null,
ex.getMessage());}
}
Article plus récent Article plus ancien