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'url de connexion est spécifique à chaque sgdb.
Une connexion java est du type java.sql.connection
- |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()); }
Le Statement
L'interface statement représente une instruction SQL (java.sql.Statement).
On obtient une instance de Statement sur la connexion SQL
- |h statement
try{ Connection conn = ... Statement statement = conn.createStatement(); } catch(Exception e){ ... }
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 java.sql.ResultSet.
- |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); }