jeudi 16 septembre 2010

Comment récupérer les types Jdbc et leurs libellés correspondants ?

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 = -7
TINYINT = -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

Aucun commentaire:

Enregistrer un commentaire