2. En pratique
Chargement du pilote
Ouverture de connexion
Exécution d'une requête
Programme principal
3. Package et classes
Le paquetage java.sql regroupe les interfaces et
les classes de l'API JDBC.
import java.sql.DriverManager; // gestion des
pilotes
import java.sql.Connection; // une connexion à la
BD
import java.sql.Statement; // une instruction
import java.sql.ResultSet; // un résultat
(lignes/colonnes)
import java.sql.SQLException; // une erreur
5. Drivers
Type 1 JDBC-ODBC Bridge
Type 2 Native-API Partly-Java Driver
Type 3 Net Protocol All-Java Driver
Type 4 Native Protocol All-Java Driver
6. Drivers : chargement
Méthode 1 :
String nomDriver = "nom_du_driver";
try{
Class.forName(nomDriver);
}catch(ClassNotFoundException cnfe){
System.out.println("La classe "+nomDriver+" n'a pas
été trouvée");
cnfe.printStackTrace();
}
Exemple :
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//pour le pont JDBC-ODBC
Class.forName("com.mysql.jdbc.Driver");
//pour MySQL et ConnectorJ
Méthode 2:
Driver monDriver = new com.mysql.jdbc.Driver();
DriverManager.registerDriver(monDriver);
7. Connections
String url = "jdbc:<subprotocol>:<subname> " ;
Connect = DriverManager.getConnection( url , SQLlogin ,
SQLpassword ) ;
Exemples :
jdbc:odbc:maBase;CacheSize=30;ExtensionCase=LOWER
jdbc:mysql://localhost/maBase
jdbc:sybase:Tds:localhost:5020/maBase
Pour oracle on a deux mode de oci et thin :
jdbc:oracle:oci:@maBase
jdbc:oracle:thin:@//localhost:1521:maBase
10. Les requetes
Statement //requete simple
PreparedStatement //requete preparée
CallableStatement // appel à une procedure
stockée
On ne peut pas les instancier
Pour les créer il faut faire appel à la classe
Connection
17. Resulset modification
Connection connection = ...;
Statement statement = connection.createStatement
(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE
);
String sql = "SELECT * FROM Annuaire";
ResultSet resultat = statement.executeQuery(sql);
// on se place sur la ligne à insérer
resultat.moveToInsertRow();
//on renseigne les différents champs
resultat.updateInt("id",456);
resultat.updateString("nom","nouveauNom");
resultat.updateString("prenom","nouveauPrenom");
//on insère effectivement la nouvelle ligne
resultat.insertRow();
// se replacer sur la ligne pointée avant l'appel à
moveToInsertRow
resultat.moveToCurrentRow();
19. CallableStatement
1- Créer le callablestatement
(connection.prepareCall(String))
2- répertorier le type des paramètres de sortie
(méthode registerOutParameter(numero, type
java.sql.types)
3- passer les valeurs des paramètres d’entrée
(méthode setXXX( numéro, valeur))
4- récupérer les résultats (méthode (getXXX( numéro ))