java et bases de données : jdbc
TRANSCRIPT
- 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