sio:bloc2:poo:db

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
sio:bloc2:poo:db [2024/09/03 11:06] – supprimée - modification externe (Date inconnue) 127.0.0.1sio:bloc2:poo:db [2024/09/03 11:06] (Version actuelle) – ↷ Page déplacée de slam4:poo:db à sio:bloc2:poo:db jcheron
Ligne 1: Ligne 1:
 +====== Accès aux bases de données ======
 +===== Connexion à Mysql En java =====
 +==== Connecteur ====
  
 +Télécharger le pilote JDBC pour Mysql sur : http://www.mysql.com/downloads/connector/j/\\
 +Pour une application web, copier le fichier **mysql-connector-java-x.x.x-bin.jar** dans le dossier **web-content/WEB-INF/lib**
 +
 +==== Connexion dans le code ====
 +
 +L'[[http://www.codejava.net/java-se/jdbc/jdbc-database-connection-url-for-common-databases|url de connexion]] est spécifique à chaque sgdb.\\
 +Une connexion java est du type [[http://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html|java.sql.connection]]
 +
 +
 +<code java |h Exemple java>
 +import java.sql.Connection;
 +import java.sql.DriverManager;
 +
 +Connection connection=null;
 +try{
 + Class.forName("com.mysql.jdbc.Driver");//Chargement du Driver
 + connection=DriverManager.getConnection("jdbc:mysql://url/mabase","user", "pass");
 +}
 +catch(Exception e){
 + System.err.println(e.getMessage());
 +}
 +</code>
 +==== Le Statement ====
 +
 +L'interface statement représente une instruction SQL ([[http://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html|java.sql.Statement]]).\\
 +On obtient une instance de Statement sur la connexion SQL
 +<code java |h statement>
 +try{
 + Connection conn = ...
 + Statement statement = conn.createStatement();
 +}
 +catch(Exception e){
 +...
 +}
 +</code>
 +Il est ensuite possible d'exécuter une instruction SQL via l'une des méthodes suivantes :
 +^Méthode ^Retour |
 +| **execute** | boolean valant true si l'instruction renvoie un ResultSet, false sinon |
 +| **executeQuery** | ResultSet contenant les résultats (ne retourne jamais null) |
 +| **executeUpdate** | int indiquant le nombre de tuples (lignes) modifiés pour un INSERT, UPDATE et DELETE, ou alors 0 pour les instructions ne retournant rien (CREATE par exemple) |
 +| **executeBatch** | int[] : tableau d'entiers indiquant le nombre de tuples modifiés pour chaque commande contenue dans le batch. Ce tableau est ordonné selon l'ordre des ajouts au batch. |
 +==== Le ResultSet ====
 +
 +L'interface ResultSet représente le résultat d'une requête (SELECT généralement) voir [[http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html|java.sql.ResultSet]].
 +<code java |h Exemple d'extraction de données>
 +Statement st = connection.createStatement();
 +String sql = "SELECT * FROM MaTable";
 +ResultSet rs= st.executeQuery(sql);
 +while(rs.next()){
 + int id = rs.getInt(1);
 + String nom = rs.getString(2);
 + double prix = rs.getDouble(3);
 + java.sql.Date date = rs.getDate(4);
 + int row = rs.getRow();
 + System.out.println("Données contenues dans la ligne "+row +" du Resultset);
 + System.out.println("id : "+id+" nom : "+nom+" prix : "+prix+" date : "+date);
 +}
 +</code>