Envoyé par
fr1man
Tu peux sortir le chargement du driver dans un bloc static; pas besoin de l'exécuter à chaque appel de la méthode.
1 2 3 4
|
static {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} |
Il y a un truc que je n'avais pas vu ; pour MySQL il faut faire :
Class.forName("com.mysql.jdbc.Driver");
et non pas appeler le JdbcOdbcDriver (qui ne sert que pour utiliser une base Access ...)
donc on pourrait se dire : "pourquoi ça marche quand même ?"
parce que le com.mysql.jdbc.Driver est, en principe, de type 4 et donc s'autocharge en service au lancement de l'application avant même son utilisation.
Ma science est toute neuve c'est en lisant un post récent de professeur shadoko que j'ai appris que les pilotes JDBC de type 4 n'avait plus besoin de Class.forName("com.mysql.jdbc.Driver").
Moralité : on peut supprimer le Class.forName et la classe utilitaire de OButterlin devient :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
public class ConnectionUtils
{
public static Connection getConnection()
{
try
{
String url = "jdbc:mysql://ip:port/bd_name";
String user = "user_name";
String passwd = "password";
return DriverManager.getConnection(url, user, passwd);
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}
} |
Partager