Click here to load reader

Java et bases de données : JDBC

Embed Size (px)

Citation preview

  • 1. Java DataBase Connectivity JDBC

2. En pratique Chargement du pilote Ouverture de connexion Excution d'une requte 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 rsultat (lignes/colonnes) import java.sql.SQLException; // une erreur 4. Les Pilotes (drivers) 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 Mthode 1 : String nomDriver = "nom_du_driver"; try{ Class.forName(nomDriver); }catch(ClassNotFoundException cnfe){ System.out.println("La classe "+nomDriver+" n'a pas t trouve"); cnfe.printStackTrace(); } Exemple : Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //pour le pont JDBC-ODBC Class.forName("com.mysql.jdbc.Driver"); //pour MySQL et ConnectorJ Mthode 2: Driver monDriver = new com.mysql.jdbc.Driver(); DriverManager.registerDriver(monDriver); 7. Connections String url = "jdbc:: " ; 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 8. Le cas Oracle 9. la Connexion (connection) 10. Les requetes Statement //requete simple PreparedStatement //requete prepare CallableStatement // appel une procedure stocke On ne peut pas les instancier Pour les crer il faut faire appel la classe Connection 11. Statement 12. Statement 13. Resulset 14. Resulset navigable modifiable Statement createStatement(int typeCurseur, int modifCurseur) 15. Resulset navigation 16. Resulset modification 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 insrer resultat.moveToInsertRow(); //on renseigne les diffrents champs resultat.updateInt("id",456); resultat.updateString("nom","nouveauNom"); resultat.updateString("prenom","nouveauPrenom"); //on insre effectivement la nouvelle ligne resultat.insertRow(); // se replacer sur la ligne pointe avant l'appel moveToInsertRow resultat.moveToCurrentRow(); 18. PreparedStatement 19. CallableStatement 1- Crer le callablestatement (connection.prepareCall(String)) 2- rpertorier le type des paramtres de sortie (mthode registerOutParameter(numero, type java.sql.types) 3- passer les valeurs des paramtres dentre (mthode setXXX( numro, valeur)) 4- rcuprer les rsultats (mthode (getXXX( numro )) 20. CallableStatement 21. Transactions 22. Transactions