Objectif
ne plus coder en dur dans des programmes des tableaux correspondants aux types Jdbc à traiter, mais les récupérer directement depuis la classe "java.sql.Types"Solution
import java.lang.reflect.Field;
import java.util.Hashtable;
public class GetJdbcTypes
{
// ---------------------------------------------
Hashtable<Integer,String> lesTypes = new Hashtable<Integer,String>() ;
// ---------------------------------------------
public GetJdbcTypes() throws ClassNotFoundException, InstantiationException, IllegalAccessException
{
Class c = Class.forName("java.sql.Types");
Field[] f = c.getFields();
for(int i=0;i<f.length;++i)
{
String lib = f[i].getName() ;
Integer ii = (Integer) f[i].get(c) ;
lesTypes.put(ii, lib) ;
System.out.println( lib + " = " + ii ) ;
}
}
// ---------------------------------------------
public static void main(java.lang.String[] args)
{
try
{
GetJdbcTypes appli = new GetJdbcTypes() ;
System.out.println( "nb = " + appli.lesTypes.size() ) ;
}
catch(Exception e)
{
e.printStackTrace();
}
}
// ---------------------------------------------
}
Résultat généré
BIT = -7TINYINT = -6
...
NCLOB = 2011
SQLXML = 2009
nb = 36
Commentaires
- le nombre de valeurs dépend de la version java, une vingtaine en jdk 1.4, 36 en jdk 6.
- la classe ne contient que des entiers, pas besoin de complexifier ce traitement simple.
Pour approfondir le sujet
- source de la classe java.sql.Types : http://www.docjar.com/html/api/java/sql/Types.java.html
Aucun commentaire:
Enregistrer un commentaire