Un des soucis majeurs d'un développeur Maven est de tomber sur un JAR propriétaire et par-dessus le marché sans aucune indication de version. Tel était mon cas. Actuellement, je migre une ancienne application vers Maven, elle utilise un driver DB2 dont le JAR ne contient pas le numéro de version qu'on trouve habituellement dans META-INF/MANIFEST.MF. Heureusement, JDBC prévoit la possibilité de récupérer le numéro de version d'un driver et ce, à l'aide de la classe DatabaseMetaData.
Le code suivant charge le driver JDBC, puis se connecte à la base de données (l'inconvénient est l'obligation de se connecter à une base de données, je n'ai pas trouvé mieux !), il fait ensuite appel à la méthode getDriverVersion().
Le code suivant charge le driver JDBC, puis se connecte à la base de données (l'inconvénient est l'obligation de se connecter à une base de données, je n'ai pas trouvé mieux !), il fait ensuite appel à la méthode getDriverVersion().
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Version {
public static void main(String args[]) throws InstantiationException,
IllegalAccessException, ClassNotFoundException, SQLException {
Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
Connection con = DriverManager.
getConnection("jdbc:db2://<nom de la base>", "<utilisateur>", "<mot de passe>");
DatabaseMetaData dmd = con.getMetaData();
System.out.println("La version du driver est : " + dmd.getDriverVersion());
}
}