Java JDBC Driver Class.forName Question

Bonjour,
Petite question peut être inutile, mais cela me turlupine.
La méthode forName de la classe Class permet de créer une instance de la classe dont le nom est passé en paramètre.

Dans le cadre d’un accès vers une base de données, cet appel a lieu pour obtenir le driver nécessaire à la communication avec le moteur de base de données.
Par exemple

Class.forName("com.mysql.jdbc.Driver");

On voit que l’instance n’est pas récupérée, alors je me demandais comment cela agit-il sur le fonctionnement de la connexion.

Si tu fais ça, c’est que tu as du code statique dans la classe, qui fait le reste :

package fr.foobar;
class A {
  static {System.out.println("COUCOU"); }
}

Class.forName("fr.foobar.A");

Tu devrais voir “COUCOU” écrit.

Je ne sais pas si cela répond à ta question exactement, mais ça devrait t’en donner une piste.

Cela veut donc dire que dans les classes Driver, il y a un traitement static qui interfère avec le comportement de la connexion JDBC.

Cela me donne un piste, oui. Mais c’est juste une question comme ça, pour savoir comment cette ligne de code influencer réellement le comportement des logiciels.

Ce qui me plait le plus dans ta réponse, c’est que je me demandais comment fonctionnait les blocs static que l’on retrouve parfois dans les codes sources.
Edité le 16/11/2010 à 15:10

Ben au chargement de classe :slight_smile: je vois pas où tu peux le faire sinon :wink: