sio:bloc2:poo:db

Accès aux bases de données

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

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());
}

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.

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);
}
  • sio/bloc2/poo/db.txt
  • Dernière modification : il y a 3 mois
  • de jcheron