MySQL et le langage Java

1) JDBC et API en langage Java

Pour Java, il faut récuperer le package mm.mysql.jdbc-2.0pre5.tar.gz

La liste de tous les versions est disponible ici.

Ensuite il suffit d'ajouter le jar dans la variable d'environnement CLASSPATH.

Des infos supplémentaires sont disponibles ici.

Nous avons les principaux interfaces suivants :

1 . java.sql.DriverManager

  • Gère les drivers JDBC

  • on peut indiquer un Driver, qui existe:

  • try {
    Class.forName("org.gjt.mm.mysql.Driver");
    } catch(Exception ex) {
    .........
    return; }

2. java.sql.Connection

  • représente une connexion ouverte
  • permet d'obtenir de la méta-information sur les tables (et autres)
Bout de code:
String url = "jdbc:mysql://localhost/maBase";
String user = "nobody";
String password = null;
Connection con = DriverManager.getConnection(url, user, password);

3. java. sql.Statement

  • permet d'envoyer un statement SQL vers la base de données
  • le résultat de la requête va se retrouver dans un ResultSet
  • Bout de code:
String query = "select .....";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(queryString);

4. java.sql.Resultset

  • Le Resultset (résultat d'une requête) est un objet spécial
  • On y accède ligne par ligne uniquement (méthode next )
  • De chaque ligne , on extrait les "colonnes"avec des méthodes getXXX
  • La méthode getString marche un peu près avec tout
  • Bout de code:

while (rs.next()) {
String s = rs.getString("COF_NAME");
float n = rs.getFloat("PRICE");
System.out.println(s + " " + n);
}

Ces interfaces nous permettent de réaliser les opérations élémentaires pour récuperer des informations d'une base de données mySQL.


2) Exemple simple

import java.sql.*;

public class myClient
{
	public static void main(String[] args) 
	{
		try {
			Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
			Connection Conn = DriverManager.getConnection("jdbc:mysql://localhost/etudiant?user=fred&password=fred");
			Statement Stmt = Conn.createStatement();
			ResultSet RS = Stmt.executeQuery(args[0]);
			while (RS.next()) {
			System.out.println(RS.getInt(1) + " | " + RS.getString(2) + " | " + RS.getString(3));
			}
		RS.close();
		Stmt.close();
		Conn.close();
		}
		catch (Exception E) {
			E.printStackTrace();
		}
	}
}