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 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

Leave a Reply

Telechargement